Lua 中未记录的不等式运算符<>?



在Lua中阅读编程的页面时,我在Lua5.3控制台中进行了实验。在3.3–Logical Operators中,我读到(并尝试过(not 0评估为false——这对作为C/C++程序员的我来说非常震惊。为了练习,我写了一个函数来检查给定的数字是否与0:不同

Lua> function nn(x) return x <> 0 end

尽管有伪造的运算符,[1]函数做的正是它应该做的:

Lua> nn(1)
true
Lua> nn(0)
false
Lua> nn(0.0)
false
Lua> nn(0.5)
true
Lua> nn(-1)
true

当我意识到实际的不等式运算符是~=时,我想知道为什么我没有收到错误消息。因此,我假设5.3版本(我正在试验(可能会为~=引入一个别名,但我发现Lua 5.3参考文献3.4.4–关系运算符中的情况并非如此。

有人能告诉我们这里到底发生了什么吗?


[1]我显然有一种明确无误的感觉,从SQL、Basic或Pascal中知道的运算符<>将非常适合Lua;(

这似乎是我的Lua 5.3控制台中的一个错误。当我尝试相同的时

function nn(x) return x <> 0 end
nn(0)
nn(0.1)
nn(0.0)
nn(10)
nn(-10)

在ideone中(运行Lua(luac 5.3.3((,我得到了以下语法错误:

luac5.3:prog.loa:1:在'>'附近出现意外符号

与我在Lua现场演示中获得的相同(Lua 5.3.5版权所有(C(1994-2018 Lua.org,PUC Rio(

输入:1:在'>'附近出现意外符号

最新更新