Ruby のローカル変数登録について
以下の Ruby コードを見てほしい。
if false a = 1 end p a #=>nil if true nil else b = 1 end p b #=>nil c = 1 if false p c #=>nil while false d = 1 end p d #=>nil
いずれも nil を出力し、「undefined local variable or method」の NameError は出ない。
覚えておくと役に立つかも知れない。
応用編。
$ pry [1] pry(main)> i = 1 if i.nil? => 1 [2] pry(main)> i => 1 [3] pry(main)> j = 1 if j == 1 => nil [4] pry(main)> j => nil
これはたぶん何の役にも立たない。