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

  • Caina Mondo Zine

    Caina Mondo

    13 EKİM 2007
  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010