キーが文字列で、値が文字列の配列であるハッシュが 1 つあります。私はこのようなものが欲しい:
{"k1"=>["v1", "v2"], "k2"=>["v3", "v4"]}
これを実装するためのハッシュと配列は 1 つだけです。私はこのようなものをコーディングしました:
hash1 = Hash.new
arr = Array.new
arr.push "v1"
arr.push "v2"
hash1["k1"] = arr
#hash is like this: {"k1"=>["v1", "v2"]
#Now I clear the array to read the new values
arr. clear
arr.push "v3"
arr.push "v4"
hash1["k2"] = arr
puts hash1
#Output: {"k1"=>["v3", "v4"], "k2"=>["v3", "v4"]}
#Notice that k1's value also got updated
次に、1行を変更しました。
hash1 = Hash.new
arr = Array.new
arr.push "v1"
arr.push "v2"
hash1["k1"] = arr
arr = [] # ** This is the only changed line. Now k1's value is correct. **
arr.push "v3"
arr.push "v4"
hash1["k2"] = arr
puts hash1
#Output: {"k1"=>["v1", "v2"], "k2"=>["v3", "v4"]} (which I wanted)
誰かが私にこれがどのように起こるか説明してもらえますか? 私はRubyにとても慣れていません。理想的には、この問題をコーディングする正しい方法は何ですか?