【Ruby】Rubyの nil? と ||= について
技術的なところもレベルアップするために、備忘録のため書きます。
nil?
最近、Rubyでデータを扱うスクリプトを書いているときのこと。
もともとJavaエンジニアなのでnull判定は以下の通り書いていました。
hoge != null
この慣習が残っているため、Rubyでも同じように書いていました。
hoge = "test" hoge != nil
普通にソースレビューでボロクソに言われるパターンですね。
以下のように書きましょう。
hoge = "test" hoge.nil?
pryでちゃんと試します。
[1] pry(main)> hoge = "test" => "test" [2] pry(main)> hoge.nil? => false [3] pry(main)> hoge == nil => false
||=
演算子の自己代入演算子。a が 偽 か 未定義 なら a に xxx を代入する。
こ、こんな便利なものが・・・?!
と書いていますが、Javaでも += とか普通にありますもんね。
pryでちゃんと試します。
[1] pry(main)> piyo = "" => "" [2] pry(main)> piyo ||= "piyo" => "" [3] pry(main)> piyo2 = "piyo2" => "piyo2" [4] pry(main)> piyo2 ||= "piyopiyo" => "piyo2"
irbやpryですぐに試せるのも強みですね。
やる気UPに繋がります。
ちなみにQiitaに書かないのは、いいものがもっとたくさんあるためです。