近期项目需要,研究openresty,开始学习Lua,对Lua常用的语法进行一个简单总结
数据类型
空类型
nil
所有未赋值的变量都为nil
布尔类型
true/false
nil和false均为false,其它值为true。这点与C/C++不同,C/C++中的0也是false
数值类型
所有的整数和浮点数都为数值类型
字符串(string)
可以使用双引号,单引号或[[]]来定义字符串,字符串拼接使用..,如:
local a = "aaa"
local b = 'bbb'
local c = [["aaa",'bb']]
print(a)
print(b)
print(c)
print(a.."~="..b)
运行结果
D:\My Work\lua>lua53 string.lua
aaa
bbb
"aaa",'bb'
aaa~=bbb
D:\My Work\lua>
表(table)
lua的表分为两种,一种为数组,一种为映射,对表中的类型,不要求一致
<pre name="code" class="plain">
--数组:
ta = {1, 2, "Hello"}
--映射:
tb = {
["Hello"] = "world",
[1] = "Hello"
}
print("数组")
for k, v in ipairs(ta) do
print(k, v)
end
print("映射")
for k, v in pairs(tb) do
print(k, v)
end
运行结果
D:\My Work\lua>lua53 string.lua
数组
1 1
2 2
3 Hello
映射
1 Hello
Hello world
D:\My Work\lua>
与C/C++/java不同,Lua的数组是从1开始索引的,映射则是按照Hash进行索引
函数
函数有两种定义方式