Reputation: 19277
I came across an error: attempt to compare boolean with number
with the following code:
local x = get_x_from_db() -- x maybe -2, -1 or integer like 12345
if 0 < x < 128 then
-- do something
end
What causes this error? Thanks.
Upvotes: 5
Views: 5884
Reputation: 186
writing 0 < x < 128
is okay in Python, but not in Lua.
So, when your code is executed, Lua will first calculate if 0 < x
is true
. If it is true, then the comparison becomes true < 128
, which is obviously the reason of the error message.
To make it work, you have to write:
if x < 128 and x > 0 then
--do something
end
Upvotes: 7
Reputation: 72312
0 < x < 128
is equivalent to (0 < x) < 128)
, hence the error message.
Write the test as 0 < x and x < 128
.
Upvotes: 4