1. 字符串标准库
string.len()等价于
string.sub()的参数可以是负数,代表从末尾倒数计数。
%.4f:小数点后保留4位小数 %02d:一个十进制数至少由两个数字组成,不足两个数字的用0补齐 %2d表示用空格来补齐 等
2. 当调用函数math.sin时,我们可能认为是“调用了math库中函数 sin”;而对于 Lua语言来说,其实际含义是“以字符串“sin”为键检索表math”。
3. Lua 语言中的表本质上是一种辅助数组,这种数组不仅可以使用数值作为索引,也可以使用字符串或其他任意类型的值作为索引(nil除外)。
4. a.x 代表的是 a[”x”] ,即由字符串”x”索引的 表;而 a[x]则是指由变量 x 对应的值索引的表
5. table构造器1 a = {x = 10, y = 20} 等价于 a = {} ; a. x = 10; a. y = 20
6. table构造器2,可以混用记录式和列表式写法:
polyline = {cola「=” blue ”,
thickness=2,
npoints=4,
{x=0, y=0}, -- polyline[1]
{x=-10, y=0, -- polyline[2]
{x=-10,y=1}, -- polyline[3]
{x=0, y=1} -- polyline[4]
}
7. table构造器3,opnames = {[”+”]= ” add ”,[”-”]=”sub ”, [”*” ] = "mul”,[8]=”div”}
8. table构造器4,a = {[1] =”red”,[2] =”green”,[ 3] =”blue ”,} 最后一个逗号可选。
9. 移除table某个元素,给该索引的值 赋nil即可。 {10, 2, 3, nil, nil} 等价{10,2,3}
10.pair遍历table,顺序随机。ipairs按照顺序进行的,但是局限于,索引为number且从1开始计数且连续。
11.安全访问操作符,lua中没有,寻找替代语句。例如,想确认在指定的库中是否存在某个函数。
类似 if lib and lib. foo then ..
zip = company and company.a and company.a.b and company.a.b.c 该写法冗长且低效(在一次成功的访问中,对表进行了6次访问而非3次访问)
进化 E = {} zip = (((company Or E).a Or E).b or E).c
12.表标准库:insert,remove,move,concat