语法
语句
注释
-- 单行注释以两个连字符开头
--[[
多行注释
--]]
变量
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 = 42
if (num > 64) then
-- 为 true 时执行
print("num 大于 64")
end
-- 一行:判断是否为 true
if num then print(true) end
if…else
num = 42
if (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, 42
if (num1 == 24) then
if (num2 == 42) then
print("Num2 等于 42")
end
else print("Test")
end
if…elseif…else
num = 42
if (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 = 0
while(num < 10)
do
print(num)
num = num + 1
end
repeat…until
repeat…until 循环的条件语句在当前循环结束后判断,所以在条件进行判断前循环体都会执行一次,而且在条件进行判断语句为 ture 时才会停止执行。
num = 0
repeat
print(num)
num = num + 1
until(num > 10)
函数
-- 返回最大值
function mySum(x, y)
return x + y
end
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")
模块