您的位置:首页 > 编程语言 > Lua

【Lua基础学习】---Lua运算符

2018-02-07 00:02 316 查看

运算符

算术运算符

操作符描述
+加法
-剪法
*乘法
/除法
%取余
^幂运算
例:

a = 10
b = 20

c = a + b
print("a + b = ", c)

c = a - b
print("a - b = ", c)

c = a * b
print("a * b = ", c)

c = a / b
print("a / b = ", c)

c = a % b
print("a % b = ", c)

c = a ^ 2
print("a ^ b = ", c)

c = -a
print("c = ", c)


输出结果:

a + b =     30
a - b =     -10
a * b =     200
a / b =     0.5
a % b =     10
a ^ b =     100
c =     -10


注意
Lua 中的加号不能用作字符串相连操作,而字符串相连操作是用” .. “。

在 Lua 中也不能使用 ++或 - -,若要在自身加一或减一使用本身减一或加一。如:A = A + 1 、 B = B - 1。

关系运算符

运算符描述
>大于
<小于
>=大于等于
<=小于等于
==等于
~=不等于
例:

a = 10
b = 20
print("a > b",a > b)
print("a < b",a < b)
print("a >= b", a >= b)
print("a <= b", a <= b)
print("a == b", a == b)
print("a ~= b", a ~= b)


输出结果:

a > b   false
a < b   true
a >= b  false
a <= b  true
a == b  false
a ~= b true


注意:强调:加冕知识点:

: 在Lua中只有 false 和 nil被视为假。其他都视为真。和 C# 有很大区别。

逻辑运算符

lua 中的逻辑运算符和 C# 表达表达方式不同。其意义相同。

操作符描述
and逻辑与
or逻辑或
not逻辑非
例:

a = true
b = false
a = true
b = false
print("a and b = ", a and b)--逻辑与操作符。若 a 为 fakse,则返回 a,否则返回b.
print("a or b = ", a or b) -- 若 a 为 true, 则返回 a,否则返回 b.
print("not a = ", not a)--如果条件为 true,返回 false


输出结果:

a and b =   false
a or b =    true
not a =     false


使用技巧:
如果 x 为 false 或者 nil 则给 x 赋初始值 v
x = x or v
等价于
if(not x)
then
x = v
end


lua中的三目运算:

三目运算符:
在 Lua 中没有三目运算,可以用 and 和 or 模拟。
a and b or c  这种写法当 b 为 false 始终返回 c,也就是说 b 不能为 false 和 nil。
两种方式避免这种情况
1、使用 if-else避免。
2、使用 table 表: (a and {b} or {c})[1]


操作符描述
..连接两个字符串
#返回字符串或表的长度
# 使用注意:

1、只有当键值是连续的数值键值时, 返回值才是有意义的。

2、当 table 中, 存在 nil 时, # 返回的数值也是无意义的。

只有当 table 的键值是连续数值时, # 返回值才是有意义的。 如果在 table 中,

存在非数值键值, 或者 nil时,其 table 并不是一个序列, 因此# table并未定义,

其返回值就无意义, 也就是说 #table 值可能在不同的平台上, 返回值不一样。

优先级顺序

优先级顺序
^
not  #   - (一元)
*   /   %
+ -
..
>  <  <=  >=  ~=  ==
and
or
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: