基本语法
-- 全局变量
a = 1
-- 局部变量
local b = 2
print(a)
-- 未声明过的变量,值为 nil
print(c)
-- 多重赋值
c,d = 3,4
print(c,d)
-- 数据类型:数值型
e = 5
-- 数据类型:字符串
f = "hello,word"
g = 'hello,world!'
print(f,g)
-- 多行字符
h = [[
abc
edc
asd
]]
print(h)
i = tostring(10)
j = tonumber("10")
-- 转换失败,值为 nil
k = tonumber("asd")
print(k)
-- 字符串长度
print(#i)
函数
function function_name1(a, b, c)
print(a, b, c)
-- 可以有多个返回值
return a, b
end
function_name2 = function (a, b)
-- body
end
-- print 的值为 1 2 nil
local d,e = function_name1(1, 2)
数组
a = {1, "123", 2, {}, function() end}
-- 下标从 1 开始
print(a[1])
a[6] = 123
-- 数组的长度
print(#a)
-- 在数组后面插入元素
table.insert(a, "value")
-- 在指定索引位置插入元素,后面的元素索引后移
table.insert(a, 1, "v")
-- 移除指定下标的元素,并返回移除的元素
b = table.remove(a, 1)
-- 下面两个暂时不知道用法
table.gsort(a, f)
table.concat(a, s)
a = {
a = 1,
b = 2,
}
a["c"] = 3
print(a["a"])
print(a.c)
全局表
所有的全局变量都在名为 _G 的全局表里。
a = 123
print(_G.a)
print(_G["a"])
分支判断语句
a = true
b = false
-- 只有 false 和 nil 代表假
-- 在 Lua 里 0 代表真
print(1 < 2)
print(1 <= 2)
print(1 == 2)
print(1 ~= 2)
if (false) then
print("123")
elseif (true) then
print("134")
else
print("456")
end
循环语句
for i = 1, 10, 2 do
-- 2 为步长值
print(i)
end
local a = 1
while a <= 10 do
if a == 5 then break end
-- 不支持类似于 a++ 的自增操作
a = a + 2
print(a)
end