ぼっち演算子
&.
safe navigation operator
メソッド呼び出しで . の代わりに &. を使うことができます。この形式でメソッドを呼びだそうとすると、レシーバが nil の場合は以下のように働きます。
引数の評価が行なわれない
メソッド呼び出しが行われない
nil を返す
動作例
code:rb
irb(main):001:0> a = 'string'
=> "string"
irb(main):002:0> b = nil
=> nil
irb(main):003:0> a,b.each {|x| p x&.upcase} "STRING"
nil
irb(main):004:0> b.upcase
Traceback (most recent call last):
...
NoMethodError (undefined method `upcase' for nil:NilClass)
Did you mean? case