openResty学习中的知识点(一)

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、点号与冒号操作符的区别

19、查看类库、方法是否编译:http://wiki.luajit.org/NYI

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>