基本语法
-- 全局变量a = 1-- 局部变量local b = 2print(a)-- 未声明过的变量,值为 nilprint(c)-- 多重赋值c,d = 3,4print(c,d)-- 数据类型:数值型e = 5-- 数据类型:字符串f = "hello,word"g = 'hello,world!'print(f,g)-- 多行字符h = [[abcedcasd]]print(h)i = tostring(10)j = tonumber("10")-- 转换失败,值为 nilk = tonumber("asd")print(k)-- 字符串长度print(#i)
函数
function function_name1(a, b, c)print(a, b, c)-- 可以有多个返回值return a, bendfunction_name2 = function (a, b)-- bodyend-- print 的值为 1 2 nillocal 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"] = 3print(a["a"])print(a.c)
全局表
所有的全局变量都在名为 _G 的全局表里。
a = 123print(_G.a)print(_G["a"])
分支判断语句
a = trueb = false-- 只有 false 和 nil 代表假-- 在 Lua 里 0 代表真print(1 < 2)print(1 <= 2)print(1 == 2)print(1 ~= 2)if (false) thenprint("123")elseif (true) thenprint("134")elseprint("456")end
循环语句
for i = 1, 10, 2 do-- 2 为步长值print(i)endlocal a = 1while a <= 10 doif a == 5 then break end-- 不支持类似于 a++ 的自增操作a = a + 2print(a)end
