Ruby の「ぼっち演算子(&. 演算子)」を使ってみる

ぼっち演算子とは

f:id:matt-note:20181114082209p:plain

 

使ってみる

以下の例の場合、変数 hoge は、文字列オブジェクトを参照しているので、&.演算子で upcase メソッドを通常通り呼び出すことができる。これを実行すると、"HOGE" を返す。一方で、変数 hoge_nil は、nil を参照している。hoge_nilnil なので、hoge_nil&.upcase を実行すると、nil を返す。

f:id:matt-note:20181114082632p:plain

f:id:matt-note:20181114082640p:plain

 

メソッドチェーンしてみる

&. 演算子でつなげ続けることで、メソッドチェーンを実行できる。

f:id:matt-note:20181114083907p:plain

f:id:matt-note:20181114083936p:plain

 

以下のように書くと、エラーになる。

f:id:matt-note:20181114084146p:plain

undefined method 'reverse' for nil:NilClass。そりゃ nil に reverse メソッドないわなと。

f:id:matt-note:20181114084218p:plain

 

まとめ

&. 演算子を使うと、左側のオブジェクトが nil の場合に、nil を返す。左側のオブジェクトが nil でない場合は、通常通り、メソッドを実行する。&. 演算子を使うことで、オブジェクトが nil だった場合に備えたコードを書くことができる。これで例外の発生を防ぐことができる。