Truthy と Falsy な値
CoddyのLuaジャーニー「基礎」セクションの一部。レッスン 24/90。
and、or、notなどの論理演算子を使用する場合、Luaは論理的な文脈で何を「真」または「偽」とみなすかを判断する必要があります。この概念はtruthy値とfalsy値と呼ばれ、Luaでは他の多くのプログラミング言語とは異なる方法で扱われます。
Luaでは、偽とみなされる値(論理演算でfalseとして扱われる値)は2つだけです:
print(false and "This won't print") -- falseは偽とみなされる
print(nil and "This won't print") -- nilは偽とみなされるandとorは、trueやfalseだけを返すのではなく、どちらかのオペランドを返すことに注意してください:a and bは、aが偽とみなされる場合はaを、それ以外の場合はbを返します;a or bは、aが真とみなされる場合はaを、それ以外の場合はbを返します。したがって、上の2行はfalseとnilを出力し、下の各行はそのテキストを出力します。
Luaでは、それ以外のすべてが真として扱われる値(論理演算でtrueとして扱われる値)と見なされます。これには、他の言語を使っていると意外に感じるかもしれない値も含まれます:
print(0 and "This will print") -- Luaでは0は真として扱われます!
print("" and "This will print") -- 空文字列は真として扱われます!
print({} and "This will print") -- 空のテーブルは真として扱われます!自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ