语法
语句
注释
-- 单行注释以两个连字符开头
--[[ 多行注释--]]
变量
num = 42 -- 全局变量local num = 42 -- 局部变量num = nil -- 撤销定义
表
Lua 唯一的组合数据结构,类型 [[Python]] 的字典或者是 [[JS]] 的对象。
myTable = {key = "value1", num = 42}print(t.num) -- 获取指定键的值t.num = nil -- 删除指定键
列表
在 Lua 中列表并非真正的类型,其实是一个 table。
myList = {"hello", 42}
条件语句
if
num = 42if (num > 64) then -- 为 true 时执行 print("num 大于 64")end
-- 一行:判断是否为 trueif num then print(true) end
if…else
num = 42if (num > 64) then print("num 大于 64")-- 为 false 时执行else print("num 小于 64")end
-- 一行if (num > 64) then print("num 大于 64") else print("Num 小于 64") end
-- 嵌套num1, num2 = 24, 42if (num1 == 24) then if (num2 == 42) then print("Num2 等于 42") endelse print("Test")end
if…elseif…else
num = 42if (num < 24) then print("num 小于 24")elseif (num == 24) then print("num 等于 24")elseif (num == 42) then print("num 等于 42")else print("num 大于 42")end
循环语句
while 循环
num = 0while(num < 10)do print(num) num = num + 1end
repeat…until
repeat…until 循环的条件语句在当前循环结束后判断,所以在条件进行判断前循环体都会执行一次,而且在条件进行判断语句为 ture 时才会停止执行。
num = 0repeat print(num) num = num + 1until(num > 10)
函数
-- 返回最大值function mySum(x, y) return x + yend
local = function(x, y) return x + y end
print("最大值为", max(24, 42))
默认值
function sayHello(name)-- 如果 name 为空,则赋值为 immwind-- Lua 空值为 nil name = name or "immwind" print("Hello, " .. name)end
sayHello("w")
模块