Lua学习笔记(三)

来源:互联网 发布:js字符串复制 编辑:程序博客网 时间:2024/06/01 10:03

1.取模操作符(%)是根据以下规则定义的:

   a%b == a-floor(a/b)*b

   计算结果的符号永远与第二个参数相同。x%1的结果是x得小数部分,x-x%1的结果是其整数部分,x-x%0.01是x精确到小数点后两位的结果

2.表达式angle%(2*math.pi)是将任意角度规范化为区间[0,2π]

3.nil只与其自身相等

4.对于table、userdata和函数,Lua是做引用比较的。只有当他们引用同一个对象时,才认为它们相等。例如:

   a = {1,2}

   b = {1,2}

   c =a

   比较结果是a与c相等,a与b不等

5.a = "2"

   b = "15"

   print(a < b)                              -->false

   因为字符串是按照字母次序来比较的

6.操作符and表示如果它的第一个操作数为假,就返回第一个操作数;不然返回第二个操作数。操作符or表示如果它的第一个操作数为真,就返回第一个操作数;不然返回第二个操作数

7.表达式

   x = x or v

   等价于

   if not x then

      x = v

   end

   可以用于在没有设置x的时候,将其设为一个默认值v

8.表达式

   (a and b) or c

   类似于C语言中的表达式

   a ? b : c

   即a为真,结果为b;a为假,结果为c。但前提是b不为假

9.not永远只返回true或false

10.在不确定某些操作符的优先级是,就应该显示地用括号来指定所期望的运算次序。这也是一种很好的编程习惯

11.不推荐在Lua中以0作为数组的其实索引。大多数内建函数都假设数组起始与索引1,若遇到以索引0开始的数组,它们就无法进行正确地处理了

12.表达式

     a = {x = 0 , }

     也是合法的,即最后一个元素后面可以写一个逗号

13.在一个构造式中可以用分号代替逗号,目的是为了便于区分列表与记录部分,方便阅读

原创粉丝点击