Hash オブジェクトに nil をセットするのはOKらしい。
$ uname -m -r -s -v
Darwin 10.6.0 Darwin Kernel Version 10.6.0: Wed Nov 10 18:13:17 PST 2010; root:xnu-1504.9.26~3/RELEASE_I386 i386
$ ruby -v
ruby 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10]
$ cat ./hash_sample.rb
#!/usr/bin/env ruby
$KCODE='u'
def copy_hash(h, keys)
dst = {}
keys.each{|k|
dst[k] = h[k]
}
return dst
end
h = {
'a' => 'aaaaa',
'b' => '',
'd' => 'dddd',
}
keys = ['a', 'b', 'c']
hash = copy_hash(h, keys)
hash.each{|k,v|
v = '(nil)' if v == nil
v = '(empty)' if v == ''
puts "#{k}=#{v}"
}
$ ruby ./hash_sample.rb
a=aaaaa
b=(empty)
c=(nil)
tags: Ruby zurazure
Posted by NI-Lab. (@nilab)