1. lua 关键字 :
and , break , do , else , elseif ,
end , false , for , function , if ,
in , local , nil , not , or ,
repeat , return , then , true , until , when
2. 删除变量: = nil ;
3. 变量类型:
nil (not defined ), boolean , number (a real number ),
string , userdata , function , thread , table
4. 只有false和nil是假,其余都为真。
5. 字符串可由," " 或 ' ' 界定。
6. “.. ” 为字符串连接符,跟数字时要用空格隔开 。
# string,返回字符串长度。
7. table 是一种“关联数组 ”,如同一种自动动态分配的对象。
程序仅持有一个对它的引用 ,table永远是匿名的。
一个持有table的变量和table自身没有固定的关联性。
8. a.x 和 a[x] 不同,a.x 等价于 a["x"] ,a[x]中的x才是索引关键字。
9. lua数组一般以1为起始索引 ,#a 表示数组或线性表的最后一个索引值;
# 对包含nil的数组不安全,maxn 代之。
10. lua运算:
+, -, *, /, ^, %,
<, >, <=, >=, ==, ~=
11. "=="首先要类型相同,table比较的是引用是否一致。
12. not, and, or “短路取值 “,如下:
x = x or v ; -- 若x未赋值(或为假),则赋值为v
a and b or c ; -- 相当于C里,a?b:c
13. 除了".."和"^"为右结合,其他都是左结合。
14. table构造法 :
{x=0,y=0} <=> {["x"]=0, ["y"]=0};
{"r","y","b"} <=> {[1]="r", [2]="y", [3]="b"};
逗号可以用分号代替。
15. lua支持”多赋值 “,x,y = y,x(交换x,y变量的值)。
为使赋值等号左右变量数一致,多则弃,缺则补nil
16. 变量前加local 为局部变量,否则,为全局量。
17. block是一个控制结构执行体,可以用do...end 限定。
18. 控制语句(没有switch!! ):
条件控制: if 条件 then … elseif 条件 then … else … end
While循环: while 条件 do … end
Repeat循环: repeat … until 条件
数字For: for 变量 = 初值,终点值,步进 do … end
泛型For: for 变量1,变量2,… ,变量N in表或枚举函数 do … end
19. for循环:
for int i=1,10,1 do...end
for i,v in ipairs(a) do...end
for k,v in pairs(t) do...end