Genelde Ruby'de bazı pahalı hesaplamaları önbelleğe almak ya da bir görüntüye geçiş yaptığım bir şey oluşturmak için genellikle kendim için bir arama tablosu oluşturmakta bulunuyorum. Bunun için kısa, okunabilir bir deyim olmalı, ama bir tane düşünemedik. Mesela benDizili bir hash için Ruby dizisi?
[65, 66, 67, ...]
başlayıp
{65 => "A", 66 => "B", 67 => "C", ...}
ile biz düşünmek-çok-güzel-yeterince deyimleri bitirmek istiyorum varsayalım şunlardır:
array = (65..90).to_a
array.inject({}) {|hash, key| hash[key]=key.chr; hash}
{}.tap {|hash| array.each {|key| hash[key] = key.chr}}
Hash[array.zip(array.map{|key| key.chr})]
Ama Bunların hepsi biraz acı verici: okumak zor, dağınıklığı kolay, niyetinde net değil. Kesinlikle Ruby (ya da bazı Rails yardımcıları) bunun için güzel bir sihir var?
Wow. Bu şekilde bir dizi dizi çiftinin yorumlanacağını asla tahmin edemezdim. {[65, "A"] => [66, "B"], [67, "C"] => [68, "D"], ...} 'ye dönüşmesini beklerdim. Bu beni biraz korkutuyor, ama yine de kullanacağım. Teşekkürler! –
@William: ['Hash. []'] 'I (http://apidock.com/ruby/Hash/%5B%5D/class) iki biçimde kullanabilirsiniz: 'Hash [anahtar, değer, anahtar, değer, ...] 'veya' Hash [[[anahtar, değer], [anahtar, değer], ...]] 'sayısız üretken anahtar/değer çiftini temsil eden iç diziyle. Ruby'de bunu yapmak için birden fazla şey olduğunu unutmayın: P Ayrıca, fasetleri kullanarak başka bir öneri ekledim. –
Yeterince emin olun. Tam orada dokümanlar. Teşekkürler! Kesinlikle Facets de kontrol edeceğim; harika görünüyor. –