Luaリファレンス 要注意点 ~比較演算子~

比較演算子

  • != ではなく ~= である。
    独特なので注意
  • nilはnilとのみ等しいと判定される。nil と false は異なる。
    よってnilとfalseを比較した結果はfalseとなる。
  • デフォルトの比較演算子では、テーブル型、ユーザーデータ、関数の3種類については、
    該当インスタンスのアドレス(参照)が等しい場合のみtrueが返る。
    中のデータが全て等しくとも、アドレスが異なればfalse
  • 数値同士、もしくは、文字列同士の比較のみ行える。
    比較演算子に対して、暗黙の数値⇔文字列 変換系は行われない。(if 3=="3"は絶対false)。

論理演算子

  • and と or
    PerlやC++と同じ挙動。
    and も or も最後に実際に評価した式が式値となる。
    1 and 2     -->  2
    nil  and 3  --> nil
    4 or 3      -->  4
    false or 5  -->  5
    
  • 論理演算子による疑似的な三項演算子
    x = a and b or c の形。
    max = (x > y) and x or y --> よくあるイディオム
    

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-08-22 (金) 20:57:34 (1370d)