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