演算子
演算子の優先順位
高い
::[]+(単項) ! ~**-(単項)*/%+-<<>>&|^>>=<<=<=>=====!==~!~&&||.....?:(条件演算子)=(+=, -= ...)notand or
低い
代入
代入式は変数などに値を設定するために用いられます。代入はローカル変数や定数の宣言としても用いられます。
foo = bar
foo[0] = bar
foo.bar = bar
自己代入
foo += 12 # foo = foo + 12
a ||= 1 # aが未定義の場合、1を代入。初期化時のイディオムの一種
多重代入
多重代入は複数の式または配列から同時に代入を行います。左辺の格式は代入可能でなければなりません。左辺の最後の式の直前に*がついていると、対応する左辺の無い余った要素が配列として代入されます。
a, b, c = 1, 2, 3
foo, = list()
foo, *rest = list2()
範囲式
条件式以外の場所では式1から式2までの範囲オブジェクトを返します。範囲オブジェクトはRangeクラスのインスタンスです。...で生成された範囲オブジェクトは終端を含みません。
1..10 # 1~10までのRange
1...10 # 1~9までのRange (10は含まない)
and
左辺と右辺の両方がtrueの場合のみtrueを返します。andは優先順位の低い演算子です。
true && true # true
true and true # true
true && false # false
false && true # false
or
左辺と右辺のいずれかがtrueの場合、trueを返します。orは優先順位の低い演算子です。 左辺の結果が儀の場合のみ右辺を評価します。
true || false # true
true or false # true
false || true # true
false || false # false
not
否定式
! true # false
not false # truea
true != false # 一致していない場合の条件を表す
条件演算子(三項演算子)
式1の結果によって式2または式3を返します。
obj == 1 ? foo : bar