2012-07-05 6 views

Respuesta

16

Sí. De acuerdo con el Ruby Docs for Hash, "Hashes enumera sus valores en el orden en que se insertaron las claves correspondientes". Por lo tanto, siempre debe obtener el mismo orden para un hash si se crea de la misma manera.

+2

Tenga en cuenta que esto es cierto para 1.9, pero no necesariamente para 1.8 y anteriores – dbenhur

+1

En 1.8 puede rectificar con keys = h.keys; valores = h.values_at * claves – djconnel

8

Depende de la versión de Ruby que esté ejecutando. Hasta 1.8, la enumeración no fue ordenada por inserción. Comenzando con 1.9, enumerará las claves y los valores de acuerdo con el orden de inserción, por lo que, sí, es seguro asumirlo siempre que esté ejecutando 1.9.

Cuestiones relacionadas