ぼっち演算子&.が便利だった

こんにちは!kossyです!





さて、今回はRuby2.3.以降に使えるぼっち演算子についてブログに残してみます!



使い方

ぼっち演算子はobject&.idのように用います。
上記のように記述すると、メソッドがnilでなかった場合のみメソッドが実行されます。
objectの中身がnilなら、idの戻り値はnilになります。

ぼっち演算子を用いることで、nilに対してメソッドを使おうとする際にエラーが出ないようにすることができます。
いわゆるnilガードですね。


例えば、deviseを導入している場合に、

if object.user_id == current_user.id 

という条件式があった場合、
ログインしていないと、nilに対してメソッドを使うことになりエラーが出てしまいます。

これを、

if object.user_id == current_user&.id

とすることで、ログインしていなくてもエラーが出ずに条件式を使用することができます。






try!となにが違うの?

調べてみたら、try!と&.は同じだそうです。
以下のブログが参考になりました。
sakurawi.hateblo.jp







なんでぼっち演算子って言うの?

気になって調べてみました。
どうやら、&の記号が、人が膝を抱えてふさぎ込んでいるように見えることから、
ぼっち演算子という俗称になったようです。
正式名称?はsafe navigation operatorと言うそうなので、
SNO演算子と覚えるよりも、ぼっち演算子の方が覚えやすいですね。






普通に便利

No method Errorにビビらずに実装できるようになるので、
開発がスムーズになるかと思います。