在通读Lua中的编程的页面时,我在Lua 5.3控制台中进行了实验。在3.3 – Logical Operators中,我读到(并尝试过)SELECT SUM(p.amount_value_one) as value_one,
SUM(p.amount_value_two) as value_two,
SUM(p.amount_diff) as amount_diff,
p.sample_no as sampleNo FROM value_table p
INNER JOIN code_table On code_table.code_no = p.code_no
WHERE code_table.code_id = p.code_id
AND code_table.stats = '22A3'
GROUP BY p.sample_no
的计算结果为not 0
-作为一名C / C ++程序员,这让我感到震惊。为了练习,我编写了一个函数来检查给定数字是否与false
不同:
0
尽管伪造了运算符, [1] 该函数确实执行了应有的功能:
Lua> function nn(x) return x <> 0 end
当我意识到实际的inequality operator being ~=
时,我想知道为什么我没有收到错误消息。因此,我假设5.3版(我正在尝试)可能已经为Lua> nn(1)
true
Lua> nn(0)
false
Lua> nn(0.0)
false
Lua> nn(0.5)
true
Lua> nn(-1)
true
引入了别名,但是我发现Lua 5.3 reference, 3.4.4 – Relational Operators并非如此。
有人可以阐明这里的实际情况吗?
[1]
我显然毫无误解地认为,SQL,Basic或Pascal中已知的运算符~=
对于Lua来说是完美的;)
答案 0 :(得分:0)
这似乎是我的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.lua:1:“>”附近的意外符号
与我在Lua live demo中获得的内容相同( Lua 5.3.5版权所有(C)1994-2018 Lua.org,PUC-Rio )
input:1:“>”附近的意外符号