SORU
2 Aralık 2010, PERŞEMBE


Sıralama anahtarı, iade karma karma Ruby

Bu nesne (Dizi yerine) Karma: karma ve dönüş sıralamak için en iyi yol olacaktır

h = {"a"=>1, "c"=>3, "b"=>2, "d"=>4}
=> {"a"=>1, "c"=>3, "b"=>2, "d"=>4}

Hash[h.sort]
=> {"a"=>1, "b"=>2, "c"=>3, "d"=>4}

CEVAP
2 Aralık 2010, PERŞEMBE


Not: Ruby >= 1.9.2 sipariş koruyarak bir karma vardır: anahtarları numaralandırılmış olacak eklenen sırasını. Aşağıda eski sürümleri için geçerlidir ya da geriye dönük olarak uyumlu kod.

Sıralanmış bir karma kavramı diye bir şey yok. Yaptığın şey hiç doğru değil.

Eğer isterseniz görüntülemek için, bir dize döndürür sıralanmış:

"{"   h.sort.map{|k,v| "#{k.inspect}=>#{v.inspect}"}.join(", ")   "}"

ya da, eğer sırayla anahtarları istiyorsanız:

h.keys.sort

ya da, Eğer sipariş öğeleri erişmek istiyorsanız:

h.sort.map do |key,value|
  # keys will arrive in order to this block, with their associated value.
end

ama özetle, anlamsız sıralanmış bir karma hakkında konuşmak için yapar. docs, "hangi anahtar veya değer bir karma traverse sırasını rasgele görünebilir, ve genellikle ekleme sırayla olmayacak." Yani karma belirli bir sırayla anahtarları ekleme yardım etmiyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5

    Hak5

    7 EYLÜL 2005
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • Propaganda Time

    Propaganda T

    19 EYLÜL 2010