2012-04-28 11 views

Respuesta

10

En Ruby 1.9: . En Ruby 1.8: probablemente no.

Setuses a Hash internally; y dado que los hash están ordenados por inserción en 1.9, ¡ya está listo!

Como mu is too short señala, este es un detalle de implementación y podría cambiar en el futuro (aunque poco probable). Afortunadamente, la implementación actual de Set es de rubí puro, y podría adaptarse en un OrderedSet en el futuro si te gusta

+15

Tipo de. [La documentación] (http://ruby-doc.org/stdlib-1.9.3/libdoc/set/rdoc/Set.html) dice "Set implementa una colección de valores desordenados sin duplicados". El uso de un hash internamente es un detalle de implementación que podría cambiar en cualquier momento y la "especificación" no garantiza la "orden". OTOH, también dice que "Set usa Hash como almacenamiento". asi que... –

Cuestiones relacionadas