2016-12-06 4 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

このプログラムをどのように呼びますか?デモオンラインhttps://www.lua.org/cgi-bin/demo – ciriarte

+1

'n%2 == 0 then'ならばもっと普遍的な解決策です。 –

+0

上記のプログラムは、まさにcmdで実行されているものです。そして、n%2 == 0でも動作しますが、私は新しい5.2 bit32機能を使いたいと思っていました。 – Laurens

答えて

0

bitwise operatorsがサポートされているため、bit32ライブラリはLua 5.3から削除されました。

+0

'bit32'はまだLua 5.3にあり、' LUA_COMPAT_5_2'が定義されているとコンパイルされます。これはlua.orgのMakefileにあります。 – lhf

関連する問題