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

  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • thepoke64738

    thepoke64738

    17 HAZİRAN 2011
  • thewinekone

    thewinekone

    17 Aralık 2005