テーブルが空である(つまり、現在、配列スタイル値もdictスタイル値も含まない)かどうかを判断する最も効率的な方法は何ですか?Luaテーブルが空である(エントリを含まない)かどうかを判断する最も効率的な方法は?
現在、私はnext()
を使用しています:
if not next(myTable) then
-- Table is empty
end
は、より効率的な方法はありますか?
注:それだけでテーブルの配列形式の値に作用するよう#
オペレータが、ここでは十分ではない - リターン0の両方が、また、テーブル変数がnil
であるかどうかをチェックすることはないことに注意してくださいので、これ#{test=2}
が#{}
と区別がつきません私がゼロの値を探しているのではなく、0のエントリ(すなわち、{}
)のテーブルを探しているので十分ではありません。
技術的な正しさについての良い点。私が元のコードを利用していた特定のケースでは、 'false'は期待されたキーではないので、もし' not 'がうまくいけば、将来は 'nil'と比較する傾向があります、ちょうどよい習慣として。そして、はい、私は速度のためにローカルのvarsに一般的なユーティリティ関数をバインドしてきました。しかし、入力をありがとう。 – Amber
コードが意図したとおりに動作するときに、間違っていることに同意するのは難しいと思う。 –
なぜ 'local next'を実行してスピードを上げるのか? – Moberg