[Ruby on Rails]tryとtry!と&.(safe navigation operator 通称:ぼっち演算子)の使い方

Railsのtryの書き方で気になったのでメモ。

try

メソッドがなくてもエラーにはならずnilを返却する。
ActiveSupport::Tryable#tryなメソッド。
実は中でtry!を実行している。
respond_to?でメソッド使えるか判定してなかったらnilみたいな。

try!

メソッドが存在しないとエラーを吐く
ActiveSupport::Tryable#try!なメソッド。
メソッドの実行はyieldとinstance_evalとpublic_sendで実行しているよう。

&.

アンドマーク(ampersand)とドットの組み合わせ。
Ruby 2.3で追加されました。

Rubyのtryの書き方に不満があったのでしょう。
候補として ?. とか .? があったっぽいですね。

メソッドが存在しないとエラーを吐く

Active Support の try! と似ていますが、メソッド名は文法的に必須であるという点が異なります。2.2.0 以降の変更

だそうです。
中身はよくわからん。

まぁ比べて見るとぼっち演算子の方がスッキリしてますね。

あとがき

ぼっち演算子って名前にピンと来ないのは私だけ?

参考

NEWS for Ruby 2.3.0
フィーチャー#11537
The Safe Navigation Operator (&.) in Ruby

スポンサードリンク