それっぽいのを列挙していきます。
デフォルト値をわかりやすく設定する。
def method1(param1 = nil) @attr1 = param1 || 'default' end
param1 の指定があった場合は param1 を、無かった場合は 'default' が @attr1 に代入されます。
|| 演算子は、
- 左の値の評価が true の場合は、右の値の評価を行う。
- 左の値の評価が false の場合は、以降の評価を中止し、左の値を返す。
- 値が nil の評価は false、値が入っている場合の評価は true となる。
というもので、その性質を利用して、
- 値が入っていればその値を。
- 入っていなければデフォルト値(|| の後の値)を。
という使い方をする。
初回時のみ計算する。
def method1 @attr1 ||= 計算式など。 end
初回時のみ計算式が実行され、以降、計算は行われず、初回に計算した値を返します。
上のコードは以下と等価です。
@attr1 = @attr1 || 計算式など。
「デフォルト値をわかりやすく設定する。」の応用です。
原理は以下の通りです。
- 最初、@attr1 は nil である。
- 一度実行すると @attr1 に計算値が入る。
- 二度目以降は @attr1 に値が入っているため計算は実行されず、@attr1 の値が返る。
コメント
本ページの内容に関して何かコメントがある方は、以下に記入してください。
コメントはありません。 コメント/idiom/usage_special_operator