SORU
1 Mayıs 2009, Cuma


Ruby: bir şeyle, bir karma her bir değeri değiştirmek gibi #diziler için topluyorsun?

Değeri ile karma her bir değeri değiştirmek istiyorum.some_method.

Basit bir hash örneğin {"a" => "b", "c" => "d"} her değer .upcased {"a" => "B", "c" => "D"} gibi görünüyor.

#collect #map denedim ama hep diziler geri almak. Orada 'zarif' bu ne böyle? bir

GÜNCELLEME: Lanet olsun, unuttum: örneği karma değiştirilmemelidir. değişken Değiştirilmiş değerleri ile yeni bir karma ihtiyacım var, ama bu değişken tanımlamanın ve üzerinde karma dolum döngü sonra tercih ederim. new_hash = hash.magic {...} gibi bir şey

CEVAP
1 Mayıs 2009, Cuma


my_hash.each { |k, v| my_hash[k] = v.upcase }

ya da, eğer bunu tercih ediyorsanız olmayan yıkıcı ve dönüş yeni karma my_hash değiştirmek yerine:

a_new_hash = my_hash.inject({}) { |h, (k, v)| h[k] = v.upcase; h }

Bu son sürüm anahtarları da dönüştürmek olabilir yararı vardır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • Machinima

    Machinima

    17 Ocak 2006
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006