Anahtarın bir dizge olduğu ve değerin dizenin bir dizisi olduğu bir hash'um var. Böyle bir şey istiyorum: Ben bu uygulamaya sadece bir karma ve bir dizi varRuby'de Dizilerin Çatısı
{"k1"=>["v1", "v2"], "k2"=>["v3", "v4"]}
.
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)
birisi bu nasıl oluyor bana lütfen açıklayabilir:
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
Sonra bir satır değişti: Böyle bir şey kodlanmış mı? Ruby için çok yeni. İdeal olarak, bu sorunu kodlamanın doğru yolu nedir?
"Bunu uygulamak için yalnızca bir karma ve bir dizim var." İkinci örneğinizde değil. Orada iki diziniz var. – Ajedi32
'{}' hemen hemen her zaman Hash.new' ve '[]' Array.new' için tercih edilir. – tadman
@tadman neden tercih edilir? Okunabilirlik için mi? ya da başka faydaları var mı? –