基本的に怠Diary

学習ログを残したい

Hashに配列を入れてそのままいい感じにしたかった

既にあろうがなかろうが、ハッシュの中の配列に追加していきたい。

でもわざわざ内容確認とかしたくないめんどい辛い。

ht = Hash.new([])
=> {}

ht["sss"] = [2,3,4]
=> [2, 3, 4]

特に問題はない。

p ht["aaa"]
[]
=> []


ht["aaa"].push "tuuui"
=> ["tuuui"]


p ht["aaa"]
["tuuui"]
=> ["tuuui"]

期待通り。

ht = Hash.new([])
=> {}

ht.store("a",[1,2,3])
=> [1, 2, 3]

p ht.keys
["a"]
=> ["a"]

p ht["b"].push 2
[2]
=> [2]

p ht.keys
["a"]
=> ["a"]

どういうことだってばよ・・・。

ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]

ぐぐったけどググり力低すぎてわかんなかった。

もっと新しいバージョンで検証することにした。

puts RUBY_VERSION
2.3.1
=> nil

ht = Hash.new([])
=> {}

ht["aaa"].push 2
=> [2]

ht.keys
=> []

結局

敗北しました。

if ht.key?("aaa")
ht["aaa"].push 2 
else             
ht.store("aaa",2)
end              
=> 2

結局判定するようにして対処した。