lua几个易与其他语言(特别C++)混淆的地方

来源:互联网 发布:怎么关闭cpu多线程优化 编辑:程序博客网 时间:2024/06/17 12:40

1.  lua认为false和nil为假,其他值都为真,所以0和空串是真。

2.  ==和~=比较两个值,如果两个值类型不同,Lua认为两者不同;nil只和自己相等;Lua通过引用比较tables、userdata、functions。
也就是说当且仅当两者表示同一个对象时相等。

3. a and  b  -- 如果a为false,则返回a,否则返回b 
    a or  b   -- 如果a为true,则返回a,否则返回b 

    and的优先级比or高

4.  字符串连接 ..  两边要加空格

5. 从高到低的顺序

^ not - (unary) * / + - .. < > <= >= ~= == and or
除了^和..外所有的二元运算符都是左连接的

6.  第一个元素索引为1

7. Lua可以对多个变量同时赋值

a, b = 10, 4 <--> a=10; b=4

遇到赋值语句Lua会先计算右边所有的值然后再执行赋值操作

x, y = y, x  -- swap 'x' for 'y'

8.  do..end(相当于c/c++的{})

9. Lua语法要求break和return只能出现在block的结尾一句(也就是说:作为chunk
的最后一句,或者在end之前,或者else前,或者until前)

10. Lua函数可以返回多个结果值

0 0