我遇到了一个错误:attempt to compare boolean with number
,其中包含以下代码:
local x = get_x_from_db() -- x maybe -2, -1 or integer like 12345
if 0 < x < 128 then
-- do something
end
导致此错误的原因是什么?感谢。
答案 0 :(得分:7)
在Python中写0 < x < 128
是可以的,但在Lua中没有。
因此,当您的代码执行时,Lua将首先计算0 < x
是true
。如果是,则比较变为true < 128
,这显然是错误消息的原因。
为了使其有效,你必须写:
if x < 128 and x > 0 then
--do something
end
答案 1 :(得分:4)
0 < x < 128
相当于(0 < x) < 128)
,因此出现错误消息。
将测试写为0 < x and x < 128
。