Il test di irb rudimentale suggerisce che Ruby Hash restituisce .keys
e .values
nell'ordine di corrispondenza. È sicuro assumere che questo è il caso?Ruby Hash .keys e .values, sicuri di assumere lo stesso ordine?
15
A
risposta
16
Sì. Secondo lo Ruby Docs for Hash, "Gli hash numerano i loro valori nell'ordine in cui sono state inserite le chiavi corrispondenti." Quindi dovresti sempre ottenere lo stesso ordine per un hash se viene creato allo stesso modo.
8
Dipende dalla versione di Ruby in esecuzione. Fino a 1.8, l'enumerazione non è stata inserita nell'ordine. A partire dalla versione 1.9, enumererà le chiavi e i valori in base all'ordine di inserimento, quindi, si può assumere fino a quando si esegue 1.9.
Problemi correlati
- 1. L'ordine di keys() e values () nel dizionario python è lo stesso?
- 2. Come si trasforma un array PHP in $ keys e $ values?
- 3. Dizionario Python: chiavi() e valori() sempre nello stesso ordine?
- 4. Dict restituirà chiavi e valori nello stesso ordine?
- 5. Do Ruby 1.8 e 1.9 hanno lo stesso codice hash per una stringa?
- 6. NSDictionary allKeys - restituisce sempre lo stesso ordine?
- 7. Conversione di un array di chiavi e una serie di valori in un hash in Ruby
- 8. metodo con lo stesso nome e parametri diversi in Ruby
- 9. I client memcache di lingue diverse hanno lo stesso hash?
- 10. Verificare se due hash hanno lo stesso set di chiavi
- 11. Ordina un array usando lo stesso ordine di un altro
- 12. Confronto e ordinamento array di hash in Ruby
- 13. Bcrypt genera hash diversi per lo stesso input?
- 14. Creare intenzionalmente due file per avere lo stesso hash?
- 15. Determinanti e Candidate Keys identici o diversi?
- 16. Mescola due liste contemporaneamente con lo stesso ordine
- 17. Perché due nuovi oggetti non hanno lo stesso codice hash?
- 18. DefaultPasswordHasher che genera hash diversi per lo stesso valore
- 19. Inserisci in Seleziona non inserisce correttamente lo stesso ordine dati
- 20. Magento $ ordine-> getAllItems() restituiscono due volte lo stesso articolo
- 21. Converti NSMutableArray in un NSSet con lo stesso ordine
- 22. Ordina un hash per valore in ordine e poi il tasto decrescente in ordine crescente rubino
- 23. Natural keys e RESTful URL
- 24. Generazione di URL privati, unici e sicuri
- 25. Vim, tabulari e Ruby 1.9 Hash
- 26. Hash in Ruby
- 27. Hash of Arrays in Ruby
- 28. Hash invert in Ruby?
- 29. UIDevice currentDevice model values values
- 30. Come definire un metodo in ruby usando splat e un hash opzionale allo stesso tempo?
Nota questo vale per 1.9, ma non necessariamente per 1.8 e precedenti – dbenhur
In 1.8 è possibile correggere con keys = h.keys; valori = h.values_at * chiavi – djconnel