[#50231] [ANN] OedoRubyKaigi05 — SASADA Koichi <ko1@...>
下記の要領で大江戸Ruby会議05を行なうのでご連絡します。
5 messages
2015/10/08
[ruby-list:50244] Re: Hash.new([])の挙動について
From:
"H.Hiro" <main@...>
Date:
2015-10-27 04:47:46 UTC
List:
ruby-list #50244
H.Hiroと申します。
a = Hash.new([])
a["foo"] << 1 # ... (1)
a["foo"] << 2
a.keys # => [] # ... (2)
この(2)がひどく不自然に感じたのですが、よく考えたら、
a = {}
a["foo"] # => nil # ... (3)
a.keys # => []
(3)の部分で新たにキーを生成するわけではない、と思うと納得がいきました。
(1)は挙動としては「a["foo"]
という値を取り出して、その値に1を追加している(aというハッシュそのものを改変しているのではなく、その参照している先の値を改変しているだけ)」ということですね。