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が入る可能性のあるカラムを操作するときによく使われる。