Rubyのぼっち演算子
オブジェクトがnilの場合、メソッドを実行しようとするとエラーになってしまい、プログラミングの処理が停止してしまう。&.演算子(ぼっち演算子)を使用することで、エラーを制御することが出来る。
Rubyにおいてはレシーバーであるオブジェクトに対してあるメソッドを実行する時、そのオブジェクトがnilの場合はエラーになる。
ところがぼっち演算子はオブジェクトがnilの場合、nilを返すことでエラーを出さなくする。オブジェクトがnilでなければそのまま結果を返し、nilの場合はnilを返すメソッドがこの演算子の特徴である。これによりオブジェクトの有無に応じてif文を書いたり、三項演算子を使う必要がなくなる。
> object = nil > object&.name => nil > object.name => Traceback (most recent call last): 1: from (irb):35 NoMethodError (undefined method `name' for nil:NilClass)
上はぼっち演算子を使っているので、nilを返している。処理が停止することなく、nilを返すところまで動いているのである。
ぼっち演算子を使うと以下のように簡単に分岐をかける。下の三つはいずれも同じ結果である。
name = if object obejct.name else nil end name = object ? object.name : nil name = object&.name