📜  LUA (1)

📅  最后修改于: 2023-12-03 15:17:27.303000             🧑  作者: Mango

LUA 程序设计语言

LUA 是一种轻量级的脚本语言,由巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)的一个小组,Roberto Ierusalimschy, Waldemar Celes 和 Luiz Henrique de Figueiredo ,于 1993 年开发而成。

LUA 是一种反射式语言,意思是它可以很容易的调用函数和变量,并不需要声明。 LUA 的语法与 C 语言十分相似,学习成本低且易于使用,可用于多种场景,包括游戏开发、网页开发、数据库调用等。

特点
  • 轻量级且高效,使用 Lua 实现的解释器很小,执行速度也很快。

  • 强大的嵌入性,Lua 可以轻松地嵌入 C/C++ 程序中,也可以被其他编程语言嵌入到自己的程序中。

  • 动态的脚本语言,支持动态类型,表、闭包、元表、协程和函数式编程等特性。

  • 可扩展性强,Lua 可以方便地扩展其他语言的函数库(例如 C/C++)。

语法
变量

变量在使用前不需要声明,直接赋值即可。变量的类型是动态的,可以是数字、布尔、字符串或其他类型。在 Lua 中,变量不需要用分号结束。变量的作用域是局部的,使用 local 关键字来声明。

-- 数字变量 
score = 90
-- 字符串变量
name = "LUA"
-- 布尔变量
is_passed = true
-- 局部变量
local age = 18
数据类型

LUA 支持 8 种基本类型,包括 nil、boolean、number、string、userdata、function、thread 和 table。

-- nil 类型表示无效值
a = nil

-- boolean 类型表示布尔值
a = true
b = false

-- number 类型表示数字
a = 123
b = 1.23

-- string 类型表示字符串
a = "hello"
b = 'world'

-- function 类型表示函数
function add(a, b)
  return a + b;
end

-- table 类型表示表
t = { name = "LUA", version = "5.3" }
控制结构

LUA 支持基本的控制结构,包括 if、for、while、repeat 和函数调用。

-- if 判断
if a > 90 then
  print("优秀")
elseif a >= 60 then
  print("及格")
else
  print("不及格")
end

-- for 循环
for i = 1, 10 do
  print(i)
end

-- while 循环
while a < 100 do
  a = a + 10
end

-- repeat 直到结构
repeat
  print(a)
until a > 100

-- 函数调用
function add(a, b)
  return a + b
end
result = add(1, 2)
使用实例
Hello World!
print("Hello, World!")
判断质数
-- 判断一个数是否为质数
function is_prime(num)
  if num <= 1 then 
     return false 
  end

  for i=2, math.sqrt(num) do
    if num%i == 0 then
      return false 
    end
  end
  return true
end

-- 输出 1~100 之间的质数
for i=1, 100 do
  if is_prime(i) == true then
    print(i)
  end
end
递归计算斐波那契数列
-- 递归计算斐波那契数列
function fib(n)
  if n == 0 then 
    return 0
  elseif n == 1 then 
    return 1
  else 
    return fib(n-1) + fib(n-2)
  end
end

-- 输出前 10 个斐波那契数
for i=0, 10 do
  print(fib(i))
end
总结

LUA 是一种轻量级且强大的脚本语言,广泛应用于游戏开发、网页开发、数据库调用等多种场景。学习 LUA 不需要知道太多的前置知识,语法简单易懂,上手也比较容易,非常适合初学者入门。