📅  最后修改于: 2023-12-03 15:17:27.303000             🧑  作者: Mango
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)
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 不需要知道太多的前置知识,语法简单易懂,上手也比较容易,非常适合初学者入门。