*Luaリファレンス 要注意点 ~比較演算子~ [#q4b16e32] **比較演算子 [#q9053b94] -!= ではなく ~= である。~ 独特なので注意 -nilはnilとのみ等しいと判定される。nil と false は異なる。~ よってnilとfalseを比較した結果はfalseとなる。 -デフォルトの比較演算子では、''テーブル型、ユーザーデータ、関数''の3種類については、~ 該当インスタンスの''アドレス(参照)''が等しい場合のみtrueが返る。~ ''中のデータが全て等しくとも、アドレスが異なればfalse''。 -数値同士、もしくは、文字列同士の比較のみ行える。~ ''比較演算子に対して、暗黙の数値⇔文字列 変換系は行われない''。(if 3=="3"は絶対false)。 **論理演算子 [#qe8009db] -and と or~ PerlやC++と同じ挙動。~ and も or も最後に実際に評価した式が式値となる。~ #sh(lua){{ 1 and 2 --> 2 nil and 3 --> nil 4 or 3 --> 4 false or 5 --> 5 }} -論理演算子による疑似的な三項演算子~ ''x = a and b or c'' の形。 #sh(lua){{ max = (x > y) and x or y --> よくあるイディオム }}