Rubyの勉強をしているなかでnilガードというものがでてきたので勉強の記録用として記事にしてみました。
認識違いがあった場合などは是非ご指摘下さい。
#nilガード
Rubyにはnilになってしまう状態を防ぐためにnilガードという書き方が存在します。簡単に説明すると仮に変数がnilだった場合には値を入れるということです。
ということで分かりやすく下記に例を記載したいと思います。
# 例1
> number = nil
> number ||= 6
> puts number
=> 6
# 例2
> number = 5
> number ||= 6
> puts number
=> 5
初めにnilガードを実装するにパイプ演算子||と=を組み合わせます。
例1ではnumberがnilなら6を代入しています。しかし例2ではnumberがnilではないので代入が行われていません。ここでnilガードというものはnilかfalseでないと代入が行われないと分かりました。
#まとめ
nilガードは変数にnilが入っているかもしれない状況でnilの代わりに何らかのデフォルト値を入れておきたいという場面で、とても便利に利用できます。
#参考
・ 現場で使える Ruby on rails 5 速習実践ガイド
・ https://www.sejuku.net/blog/19044