君の瞳はまるでルビー - Ruby 関連まとめサイト

特殊な演算子の使い方

最終更新: 2015-03-31 (火) 21:53:18 (1688d)

イディオム

それっぽいのを列挙していきます。

デフォルト値をわかりやすく設定する。

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

お名前: