mgmmyBlog

Webエンジニア👩‍💻 Railsの話がメインです。

【Ruby】『&.』ぼっち演算子(safe navigation operator)

f:id:mgmmy:20191130144326p:plain

&. ぼっち演算子(safe navigation operator)

概要

  • Ruby 2.3 以降で使用可能
  • &.をつけてメソッドを呼び出すとレシーバがnilの場合にnilを返す
  • &.の形がひとりぼっちで座っているように見えるからぼっち演算子(lonely operator)と呼ばれることが多い

使い方

レシーバがnil以外の場合

string = "hello"
string&.upcase # => HELLO

レシーバがnilの場合

string = nil
string&.upcase # => nil

# ぼっち演算子を使わずに書くと
string = nil
string.upcase # => NoMethodError

コメント

会社で見たときになんだこれと思って調べてみたら便利だった。

try!というメソッドもあるみたいだけど、&.のほうが早いらしい。
Rubyのぼっち演算子はRailsの`Object#try`より高速(翻訳)

if文とか三項演算子よりももっとシンプルに書けるので素敵😌