nilガードとぼっち演算子
2020.9.13
nilガードとぼっち演算子
nilガード
number がnilなら10を代入し、値が入っている場合は何もしない場合
number ||= 10
※numberがnilかfalseの時に代入が行われる。""や{}などがすでに入っている場合は代入が行われないので注意。
よくある利用法
配列のインスタンス変数@childrenへのゲッターメソッドを実装
def children
@children ||= []
end
ぼっち演算子
使い方
オブジェクト&.メソッド
# 正常なケース
planet = "MERCURY"
p planet.downcase #=> "mercury"
# nilが入るケース
planet = nil
p planet.downcase #=> undefined method `downcase' for nil:NilClass (NoMethodError)
# ぼっち演算子
planet = nil
p planet&.downcase #=> nil
nilが入る可能性のあるカラムを操作するときによく使われる。