变量 删除变量:把变量赋值为 nil
Lua 和 Go 一样支持多变量同时赋值
1 2 3 a, b = 10 , 5 x, y = y, x a, b = f()
尽可能使用局部变量,优点:
避免命名冲突。
访问局部变量的速度比全局变量更快。
数组
不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始
声明数组的时候可以 { [key] = value, … };也可以直接 { value, … },这时根据出现的顺序 key 分别为1,2,3,…,且优先级比 [key] = value 高
判断 Lua 把 false 和 nil 看作是”假”,其他的都为”真”
1 2 3 4 5 6 if 0 then print (true ) else print (false ) end
循环 while循环 1 2 3 4 while ( true )do print ("go on forever" ) end
for循环 数值for循环 1 2 3 4 for i = 1 , 10 , 2 do ... end
泛型for循环 1 2 3 for key, val in pairs (tbl_name) do ... end
Tips:pairs 迭代 table 元素,可以遍历表中所有的 key ,可以返回 nil ; ipairs 迭代数组元素,不可以返回 nil ,如果遇到 nil 则退出,它按照1,2,3,…的顺序遍历直到遇到值为 nil 的 key为止
until循环 不同于其他循环:until先循环再判断
1 2 3 repeat statements while ( condition )
函数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 function average (...) result = 0 local arg ={...} for i,v in ipairs (arg ) do result = result + v end print ("总共传入 " .. #arg .. " 个数" ) return result/#arg end print ("平均值为" ,average(10 ,5 ,3 ,4 ,5 ,6 ))
print(a,b,c)中间会插入\t,io.write(a, b, c)中间无插入;print 会自动调用参数的 tostring 方法
运算符
运算符
功能
举例
..
连接两个字符串
a..b ,a = “Hello “ , b = “World”, 结果 “Hello World”
#
返回字符串或表的长度
#”Hello” 返回 5
数据库 Lua支持的数据库有:ODBC, ADO, Oracle, MySQL, SQLite 和 PostgreSQL。