例えば文字列に対してlengthメソッドを呼び出すと、その文字数を取得できる
irb(main):001:0> a = 'sasaki' => "sasaki" irb(main):002:0> a.length => 6
一方、aがnilだった場合はlengthメソッドが存在しないので例外が発生する
irb(main):001:0> a = nil => nil irb(main):002:0> a.length NoMethodError: undefined method `length' for nil:NilClass from (irb):2 from /root/.rbenv/versions/2.3.1/bin/irb:11:in `<main>'
しかし、変数名の末尾に&をつけることで、対象がnilだった場合メソッド呼び出しを行わずにnilを戻すようにできる
irb(main):001:0> a = nil => nil irb(main):002:0> a&.length => nil
nilチェックが不要になるのでコードをスマートに書けるようになる