Thử nghiệm irb thô sơ cho thấy rằng Ruby Hash trả về .keys
và .values
theo thứ tự khớp. Có an toàn để giả định rằng đây là trường hợp?Ruby Hash .keys và .values, an toàn để có cùng một thứ tự?
15
A
Trả lời
16
Có. Theo số Ruby Docs for Hash, "Dấu gạch ngang liệt kê các giá trị của chúng theo thứ tự mà các phím tương ứng đã được chèn vào." Vì vậy, bạn nên luôn luôn nhận được cùng một thứ tự cho một băm nếu nó được tạo ra trong cùng một cách.
8
Phụ thuộc vào phiên bản Ruby bạn đang chạy. Tối đa 1.8, liệt kê không được đặt hàng. Bắt đầu với 1.9, nó sẽ liệt kê các khóa và giá trị theo thứ tự chèn, vì vậy, có thể an toàn để giả sử miễn là bạn đang chạy 1.9.
Các vấn đề liên quan
- 1. Ruby duy trì thứ tự chèn Hash
- 2. Mapping để Keys của một Hash
- 3. SOAP, JSON và POX trong cùng một wcf an toàn
- 4. Các phím và giá trị trả lại Dict có cùng thứ tự không?
- 5. Chuyển đổi một loạt các phím và một loạt các giá trị vào một hash trong Ruby
- 6. Cách an toàn và dễ dàng để xóa một thư mục trong Ruby là gì?
- 7. Mã an toàn và không an toàn
- 8. Ruby/Rails an toàn chủ đề
- 9. các trường cuối cùng và an toàn luồng
- 10. Chủ đề char [] cuối cùng có an toàn không?
- 11. Ruby Hash.new vs Hash literal
- 12. Có an toàn để chuyển hướng đến cùng một URL không?
- 13. Là mạng của Ruby :: HTTP an toàn?
- 14. An toàn loại an toàn()
- 15. Làm thế nào để tạo một chuỗi Ruby an toàn cho một hệ thống tập tin?
- 16. Sự khác nhau giữa đề an toàn và an toàn
- 17. Chuỗi an toàn của Netty Channel.write có an toàn không?
- 18. cách an toàn nhất để có được ghi lại căn cước cuối cùng từ một bảng
- 19. Làm cách nào để giữ lại thứ tự chèn của một hàm băm Perl lồng nhau?
- 20. Symfony2 có xử lý url an toàn đúng cách và tôi có nên sử dụng url an toàn không?
- 21. Mảng an toàn không có khóa an toàn
- 22. Thiết lập trong Ruby có luôn bảo toàn thứ tự chèn không?
- 23. Là Array.Copy an toàn khi nguồn và đích là cùng một mảng?
- 24. Nâng và loại an toàn
- 25. Ruby: chọn một hash từ bên trong một mảng
- 26. Tuần tự hóa trong java: tự động an toàn luồng?
- 27. Hiểu sự an toàn của iframe bên thứ 3?
- 28. Hash đảo ngược trong Ruby?
- 29. của Ruby Hash Whitelist Lọc
- 30. coffeescript và enum values
Lưu ý điều này đúng với 1,9, nhưng không nhất thiết đối với 1,8 và trước đó là – dbenhur
Trong 1,8 bạn có thể sửa bằng các phím = h.keys; các khóa giá trị = h.values_at * – djconnel