1、变量申明后,默认的值是nil;将 nil 赋给变量后,相当于删除变量。注意nil 和 ngx.null的区别。
2、在 lua中只有 false和 nil 值为 false ,其他值都为 true ,包括0,””等
3、lua中的数字(一切数字)都是 number类型。
4、table 的下标从 1 开始。
5、逻辑运算法 and 、or 、not的用法。
6 、字符串的连接可使用string.format ,或者 table.concat,普通..连接消耗性能比较大(每次连接生成新的更大字符串)
7、lua中没有 switch 的语法,但可使用 table 实现。
8、lua循环语法中没有continue,但有break
9、return只能出现在语句块的最后。或者使用 do return end
10、元表[重点]
11、面向对象编程[重点]
12、局部变量:Lua 的设计有一点很奇怪,在一个block 中的变量,如果之前没有定义过,那么认为它是一个全局变量,而不是这个block 的局部变量。这一点和别的语言不同。容易造成不小心覆盖了全局同名变量的错误。
13、养成定义局部变量的习惯(local)
14、Lua 内部实际采用哈希表和数组,分别保存键值对、普通值,所以不推荐混合使用这两种赋值方式。
15、数组中不要使用 nil,如果删除数组某一key采用 table.remove
16、调用代码前先定义函数
17、Lua module 只会在第一次请求时加载一次(除非显式禁用了 lua_code_cache 配置指令)
18、点号与冒号操作符的区别