1. ホーム

lua が nil 値を呼び出そうとする。

2022-02-20 03:54:23
<パス

最近更新したluaのバージョンを最新版に更新しました Lua 5.3.4 Copyright © 1994-2017 Lua.org , PUC-Rio



旧プロジェクトを実行中に以下のエラーが発生しました。



xxx: nil 値を呼び出そうとした (フィールド 'getn')



スタックトレースバック。

理由は、5.1以降でluaがtable.getn()を削除したためで、luaは互換性を確保するために悪いことをしたと思っています。



まあ、ここで文句を言っても仕方ないのですが、table.getn()が削除された以上、それに代わる新しい方法があるはずで、そう、その新しい方法が#mytableなのです。

$ lua



Lua 5.3.4 著作権 © 1994-2017 Lua.org , PUC-Rio

<ブロッククオート

mytable = {1,2,3,4} です。



table.getn(mytable)



stdin:1: nil 値を呼び出そうとした (フィールド 'getn')



スタックトレースバック。



stdin:1: メインチャンク内



[C]: で ?



#mytable