Lua入门教程 3.表达式

0x03 表达式

算术操作符

支持常规的算术操作符:二元的 + - * / ^ %
一元的 -
算术操作与C等语言一致

关系操作符

Lua提供了以下的关系操作符:<,>,<=,>=,~= 所有这些操作符的运算结果都是truefalse

== ~=用于相等性测试,这两个操作符可以应用于任意两个值。如果值具有不同类型则Lua认为它们是不相等的,否则Lua会根据它们的类型来比较两者。

对于table userdatafunction,Lua是作引用比较的。

    a = {}; a.x = 1; a.y = 0
    b = {}; b.x = 1; b.y = 0

    a = c

上面的代码结果为 a==c a~=b

不同类型的值做比较时返回false

逻辑操作符

逻辑操作符有and or not ,所有的逻辑操作符都返回true false nil
- 对于 and 来说,如果第一个操作数为假,就返回第一个操作数,否则返回第二个操作数
- 对于 or 来说,如果第一个操作数为真,就返回第一个操作数,否则返回第二个操作数

a>b?a:b

andor来表示则是

max = (x > y) and x or y

- 当x > y 时,就返回and后面的x,
- 当x <= y 时,or前面的表达式为false,于是返回or后面的y

字符串连接

连接操作符:..

print("Hello" .. "World")  -> HelloWorld
print(0..1)  -> 01

优先级

Item
^
not # -(一元)
* / %
..
< > <= >=
and
or

table构造式

可以初始化数组 也可以初始化键值对

    num = {"one", "two", "three"}
    a = {x=10, y=20}

若要以0开始索引,则可以这么做:

    days = {[0] = "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}

构造式 a = {x=0, y=0} 等价于 a = {["x"] = 0, ["y"] = 0}

猜你喜欢

转载自blog.csdn.net/yao_jianlun/article/details/51581173