技術ブログ

(技術系中心)基本自分用備忘録なので、あくまで参考程度でお願いします。

ぼっち演算子 &.

ぼっち演算子 &.

&.という演算子を使ってメソッドを呼び出すと、レシーバーがnilであった場合でもエラーが発生しなくなります。

class User
  def name 
    "名前"
  end
end
user = User.new
user.name
-> "名前"

object = nil
object&.name
-> nil

object.name
-> NoMethodError(undefined method "name" for #<MyClass: ........>

ぼっち演算子を利用すると、次のようにifや単純な条件分岐を短く書く事が出来ます。

■ifを使った場合

name = if object
  object.name
else
  nil
end

■参考演算子を使った場合

name = object? object.name : nil

■ぼっち演算子を使った場合

name = object&.name