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

  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012
  • Virtual Riot

    Virtual Riot

    19 Mayıs 2011
  • wwjoshdew

    wwjoshdew

    1 AĞUSTOS 2007