nilガードとは

nilガードとはどんなふうに使われるのか分からなかったので調べてみました。

名前から、nilを防ぐということは分かりますが、変数にnilfalseが入るのを防いでくれます。 例

[1] pry(main)> number = nil
=> nil
[2] pry(main)> number ||= 10
=> 10
[3] pry(main)> number = 5
=> 5
[4] pry(main)> number ||= 10
=> 5
[5] pry(main)> number = false
=> false
[6] pry(main)> number ||= 10
=> 10

このように、変数にnilfalseを入れたときに、||= の右辺を代入してくれる、というものでした。 右辺がtrue(今回は5)の場合は、10が代入されることはありません。

まとめ

nilガードは、nilやfalseのときに代わりに入ってくれるものを指定することができる。

参考にしたURL

qiita.com