2017-01-06 3 views
1

if x then foo() endを検出するのに、Luaではnilではありません。xを検出するためにfoo()endを使用すると、何が起こるのでしょうか?xを検出するためのfoo()end`はLuaではnilです。

手元のプロジェクトにはこのように多くの検出がありますので、私はそれらをすべて変更してもらうか、または手放すべきか提案が必要です。

ありがとうございました。

+0

主に、コード内で同じものを示すのに 'false'と' nil'を使用しているのか、それらがプロジェクトの文脈で異なる意味とセマンティクスを提供しているのかを調べます。それが前者であれば、私はそれを変更することはありません。 – greatwolf

答えて

2

条件式の目的に応じて、式はブール値falseまたは式がnilの2つの条件でfalseと見なされます。

したがってif x then foo() endは、xnilでもfalseでもない場合はfooとなります。それをnilに限定したい場合は(通常そうではありません)、x ~= nilを使用します。

関連する問題