概要
nilガード
内容
nilガードとは以下の様な記法です。
hoge ||= []
これは実際に意味するところは以下のコードです。
if hoge != nil hoge = hoge else hoge = [] end
サンプル
# encoding: UTF-8 require "pp" def nil_gard(value) return value ||= [] end def not_nil_gard(value) value if value != nil [] end [[1,2,3],nil].each do |item| pp item print "nil_gard=#{nil_gard(item).class}" print ",size=#{nil_gard(item).size}" puts print "not_nil_gard=#{not_nil_gard(item).class}" print ",size=#{not_nil_gard(item).size}" puts "\n--------------------------------" end
出力
[1, 2, 3] nil_gard=Array,size=3 not_nil_gard=Array,size=0 -------------------------------- nil nil_gard=Array,size=0 not_nil_gard=Array,size=0 --------------------------------