Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Lua: attempt to compare boolean with number

Tags:

lua

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.

like image 856
fannheyward Avatar asked Apr 15 '15 09:04

fannheyward


1 Answers

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
like image 151
taotao Avatar answered Oct 12 '22 11:10

taotao