Lua中的数据类型
nil
这个最简单,只有值nil属于该类,表示一个无效值(在条件表达式中相当于
false)。
boolean
包含两个值:false和true。
number
表示双精度类型的实浮点数
string
字符串由一对双引号或单引号来表示
function
由 C 或 Lua 编写的函数
userdata
表示任意存储在变量中的C数据结构
thread
表示执行的独立线路,用于执行协同程序
table
Lua 中的表(table)其实是一个"关联数组"(associative arrays),数组的索引可
以是数字、字符串或表类型。在 Lua 里,table 的创建是通过"构造表达式"来完成,
最简单构造表达式是{},用来创建一个空表。
流程控制
if语句
if(布尔表达式) then --[ 在布尔表达式为 true 时执行的语句 --] end
if..else语句
if(布尔表达式) then --[ 布尔表达式为 true 时执行该语句块 --] else --[ 布尔表达式为 false 时执行该语句块 --] end
while循环
while(condition) do statements end
for循环
for var=exp1,exp2,exp3 do <执行体> end
repeat...until语句
repeat statements until( condition )
函数
--[[ 函数返回两个值的最大值 --]] function max(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end -- 调用函数 ..:表示拼接 print("两值比较最大值为 ",max(10,4)) print("两值比较最大值为 ",max(5,6))
表
-- 初始化表 mytable = {} -- 指定值 mytable[1]= "Lua" -- 移除引用 mytable = nil
模块
模块定义
-- 文件名为 module.lua -- 定义一个名为 module 的模块 module = {} -- 定义一个常量 module.constant = "这是一个常量" -- 定义一个函数 function module.func1() print("这是一个公有函数") end local function func2() print("这是一个私有函数!") end function module.func3() func2() end return module
require 函数
require("<模块名>") require "<模块名>"
-- test_module.lua 文件 -- module 模块为上文提到到 module.lua require("module") print(module.constant) module.func3()