Rails触ってたら、このエラーをよくみませんかね?
[5] pry(main)> users = nil
=> nil
[6] pry(main)> users.find(1)
NoMethodError: undefined method `find' for nil:NilClass
from (pry):6:in `<main>'
nilに対して何かしらのメソッド、今回はfindを使い
for nil:NilClass
とでました。
ようは、nilにはこのメソッド使えませんよ!ってこと。
そもそもnilが入る可能性の部分にfind使うなって話なんですが、どうしても避けれない時はどうすれば・・・・。
ってときにこの&を使う!!!これが強烈なんですよね!
さっそく使いましょう。(rubyのversionが2.3以降の模様)
[6] pry(main)> users.find(1)
NoMethodError: undefined method `find' for nil:NilClass
from (pry):6:in `<main>'
[7] pry(main)> users&.find(1)
=> nil
おお!エラーがでることなく、戻り値がnilになりました。
これは便利ですね。
mapにも使えた!
[8] pry(main)> users&.map{|user| user.id == 1}
=> nil
ってかさ、これの読み方よ。これ&!!
いや、アンドって読むでしょ普通。
&の読み方知ってましたか?
&、アンパサンドって読むらしいです。
こっちの方が個人的には衝撃ですね。
おわり