演算子
演算子の優先順位
高い
::
[]
+(単項) ! ~
**
-(単項)
*
/
%
+
-
<<
>>
&
|
^
>
>=
<
<=
<=>
==
===
!=
=~
!~
&&
||
..
...
?:(条件演算子)
=(+=, -= ...)
not
and 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