所谓特别,是相对的,是相对别的主流语言而言,有些也可能只是我个人看法。
1. 函数定义与调用,与代码位置的先后顺序有关,例如
calculate() function calculate() .... end
运行起来会报错,说方法calculate未定义。如果先写function calculate(),再调用,就OK了。这与Java,C#等都不一样,Lua不是整体解析执行的,而是按顺序从前往后顺序解析的。
2. 数组(table)的index号是从1开始的,而不是0. 所以tableX[0]返回的回事nil。
3. 变量可以不需要预先声明,可以直接使用,这个特性带来很大的便利,特别的以table形式定义的结构体,随时可以添加一个新的属性定义,而不需要预先定义好。
更多特别之处,有待进一步总结。