第一版是针对 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但还是有一些区别。
第四版针对 Lua 5.3,可在 Amazon 和其他书店购买。
购买本书,您还可以帮助 支持 Lua 项目


3.2 – 关系运算符

Lua 提供以下关系运算符
    <   >   <=  >=  ==  ~=
所有这些运算符始终产生 truefalse

运算符 == 测试相等性;运算符 ~= 是相等性的否定。我们可以将这两个运算符应用于任意两个值。如果值具有不同的类型,Lua 将它们视为不同的值。否则,Lua 会根据它们的类型进行比较。具体而言,nil 仅等于自身。

Lua 通过引用比较表、用户数据和函数,也就是说,只有当两个此类值是同一个对象时,才被视为相等。例如,在代码之后

    a = {}; a.x = 1; a.y = 0
    b = {}; b.x = 1; b.y = 0
    c = a
您有 a==ca~=b

我们只能将顺序运算符应用于两个数字或两个字符串。Lua 以通常的方式比较数字。Lua 按字母顺序比较字符串,该顺序遵循为 Lua 设置的区域设置。例如,对于欧洲拉丁语-1 区域设置,我们有 "acai" < "açaí" < "acorde"。其他类型只能进行相等性(和不等性)比较。

在比较具有不同类型的值时,您必须小心:请记住 "0"==0 为 false。此外,2<15 显然为 true,但 "2"<"15" 为 false(字母顺序!)。为了避免不一致的结果,当您在顺序比较中混合字符串和数字(例如 2<"15")时,Lua 会引发错误。