说明:Lua学习笔记的内容都是《Lua程序设计.第二版》的读书笔记,笔记中很多内容都是来自于书中
1.运算符和优先级
^ not,#,-(符号一元) *,/,% +,- .. <,>,<=,>=,~=,== and or
1)从上到下,优先级逐渐降低,除了^(指数)和..(字符串连接)是右结合,其他的都是左结合,本人通常都是使用括号决定运算的顺序
2)算术运算符都可以用于实数
2.%(取模)的特殊说明
1)取模的定义 : a % b == a – floor(a/b)*b
2)对于正实数,x %.1 * 10e-n(n>=0)就是取得x中的小数点n位以后的数字
例如可以使用x – x%1.0e-2来取得精确到小数点两位后的结果,对于负实数则不是这样,可以先取负实数的绝对值,进行之前的 操作,在加上负号
3.关系运算符
1)与c语言不同的有不相等操作符~= 注意尽量不要比较不同类型的值
4.逻辑运算符and,or, not
1)and: 如果它的一个操作数为假就返回第一个操作数,否则返回第二个
2)or:如果它的一个操作数为真就返回第一个操作数,否则返回第二个
3)and和or都是短路求值
4)not永远只返回true 和false
5)技巧,根据 Lua 逻辑运算符的特性可以使用下面的技巧
①x = x or v –如果 x 没有赋值则给 x 一个默认值v 等价于 if not x then x = v end
②(a and b) or c 前提b不为假 则与c中的 a ? b : c 类似,例 max = (x > y) and x or y,解析
根据and和or规则有:如果(x>y)为真,(x>y) and x返回的结果是 x,而x or y 则返回的结果x;如果(x>y)为假,(x>y) and x 返回的结果是 (x>y),因为(x>y)为假(x>y) or y 则返回的结果y
0 条评论。