こんにちは!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にビビらずに実装できるようになるので、
開発がスムーズになるかと思います。