Lua中,什么是字母依赖于locale的设置,也就是中文环境下,中文可以用作变量名(?这个需验证)
Lua有大小写之分。
常用的块注释方式是–[[然后以--]]结尾,这样如果想取消块注释,就把开头多加个-就行了。
LUA_INIT内容为@文件名,解释器会先执行这个文件(?需验证)。
Lua中的(以后省略)函数为第一类值,比如print = type; print(a); 这个是合法合理的,但是print就没有了,一般用于沙箱sandbox操作。
条件判断只有两种情况为假,false以及nil。其余都为真。
number是实数(通常下)。用双精度代表整数,只要这个数字不大于10的14次方就没问题(本书这里笔误为1014,shit,我对照了PIL第一版确认的)。重新编译数字类型可以方便用于其它平台luaconf.h。数字可以写作4.57e-3 0.3e12 5e+20这种科学计数法。
Lua可以存储任意二进制字符到字符串类型中。5.1支持的长括号写法[===[匹配]===],只要等号数量移植。字符串与数字运算,数字会转成字符串,可以用tonumber把字符变成数字。
local str = "5e+20"
local num = tonumber(str)
print(num)
数字转成字符,可以用tostring或者让数字与空字符串连接。
5.1的字符串支持#。
local a = {}创建了一个table,并且让a引用这个table,通过a这个变量我们可以操作这个table,如果没有变量继续引用这个table(a = nil),Lua会负责回收内存销毁它。
a["nameX“] = 5 等价于 a.nameX = 5,注意key里面的引号。local a = {}; a[x] = 5这个代码是不合法的。local a = {}; a["x"] = 5; print(a.x);这个会打印出5。
长度操作#的常用做法,print(a[#a])打印最后一个(因为Lua的table索引从1开始),a[#a +1] = n常用与自增,a[#a] = nil删除最后一个。