Lua:尝试将布尔值与数字进行比较

时间:2015-04-15 09:32:13

标签: lua

我遇到了一个错误: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

导致此错误的原因是什么?感谢。

2 个答案:

答案 0 :(得分:7)

在Python中写0 < x < 128是可以的,但在Lua中没有。

因此,当您的代码执行时,Lua将首先计算0 < xtrue。如果是,则比较变为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