2016-12-06 89 views
1

嗨,所以我刚刚安装了Lua,我一直在玩它。当我运行一个应该计算一个整数是偶数还是奇数的程序时,它会向我发出一个错误。Lua:“尝试索引nill值”

计划:

function is_even(n) 
    if bit32.band(n,1) == 0 then 
    print('Even') 
    else 
    print('Odd') 
    end 
end 

这是我收到的错误:

stdin:2: attempt to index a nil value (global 'bit32') 
stack traceback: 
     stdin:2: in function 'is_even' 
     (...tail calls...) 
     [C]: in ? 

我到底错在这里做什么?这个程序应该在Lua 5.2+上工作,我目前已经安装了Lua 5.3.3。

+0

你是怎么调用这个程序的?它似乎在Lua下工作:演示在线https://www.lua.org/cgi-bin/demo – ciriarte

+1

'如果n%2 == 0那么'是更通用的解决方案。 –

+0

上面的程序正是我在cmd中运行的程序。和n%2 == 0的作品,但我想使用新的5.2 bit32功能。 – Laurens

回答

0

从Lua 5.3中删除了bit32库,因为它现在支持bitwise operators

+0

'bit32'仍然在Lua 5.3中,并且如果定义了'LUA_COMPAT_5_2',则编译它,它位于lua.org的Makefile中。 – lhf

相关问题