2011-10-13 5 views
18

Od wersji Ruby 1.9 hasze zachowują porządek wstawiania, co jest bardzo fajne. Chcę poznać najlepszy sposób uzyskania dostępu do ostatniej pary klucz-wartość.Uzyskiwanie dostępu do ostatniej pary klucz-wartość w haśle Ruby (1.9)

Pisałem jakiś kod, który wykonuje to:

hash.values.last 

To działa i jest bardzo łatwy do zrozumienia, ale być może jest to możliwe, aby uzyskać dostęp do ostatniej wartości bezpośrednio, a które przez pośrednika (tablica wartości). Czy to jest?

Odpowiedz

10

Nic nie wbudowane, nie. Ale można małpa-poprawki, jeśli były tak skłonny (nie zwykle zalecane, oczywiście):

class Hash 
    def last_value 
    values.last 
    end 
end 

, a następnie:

hash.last_value 
16

Hash mieć „pierwszy” sposób, ale zwracają pierwsza para w trybie tablicy, na końcu, można spróbować:

my_hash.to_a.last 

ten zwrot ostatnia para w trybie tablicy jak „pierwszej metodzie”

2

Po prostu robiłam to dla bardzo dużej hash:

hash.reverse_each.with_index do |(_, value), index| 
    break value if (index == 0) 
end 
14

Jeszcze jedna alternatywa, że ​​używam sobie:

hash[hash.keys.last] 
+1

To jest niesamowite rozwiązanie! –

Powiązane problemy