nilガードについてmemo✍
左辺がnilの場合は値が代入され、既に値が入っている場合値の代入は行われない。
pry(main)> a = nil => nil pry(main)> a ||= "OK" => "OK" pry(main)> b = 1 => 1 pry(main)> b ||= "OK" => 1
実は左辺がfalseになる場合のみ値の代入が行われ、左辺がtrueになる場合は値の代入が行われない。
pry(main)> a = "" => "" pry(main)> a ||= "OK" => "" pry(main)> b = 0 => 0 pry(main)> b ||= "OK" => 0 pry(main)> c = [] => [] pry(main)> c ||= "OK" => [] pry(main)> d = {} => {} pry(main)> d ||= "OK" => {} pry(main)> e = false => false pry(main)> e ||= "OK" => "OK"