2012-08-12 8 views
7

He leído la documentación de los métodos assoc y rassoc de Ruby array. Entiendo lo que hacen Ambos trabajan en matrices de matrices. assoc devuelve la matriz cuyo primer elemento es igual al parámetro proporcionado, y rassoc hace lo mismo, pero para el segundo elemento.¿Cuál es el propósito de los métodos de matriz de Ruby assoc y rassoc?

Mi pregunta es ¿para qué son estos métodos? Esta funcionalidad es muy específica. Supongo que hay alguna razón por la cual se crearon estos métodos. ¿Qué es?

Respuesta

5

Hay un par de razones, pero la principal es que una matriz puede actuar como una Hash. Creo que debido a que los hashes no están clasificados, los diseñadores de Ruby necesitaban una forma de representar un hash de manera ordenada. Creo que hay muchos métodos Enumerable que devuelven matrices cuando se invocan en un hash.

+1

Las funciones equivalentes se encuentran en Lisp; quizás ahí es donde Ruby los consiguió. – echristopherson

+0

Desde la versión 1.9, se garantiza que los hashes de Ruby iterarán en el orden de inserción. (Estoy de acuerdo contigo, sin embargo). – johncip

+0

@johncip: Tenía la impresión de que ese nuevo comportamiento de hash no era universal (por ejemplo, confiar en él podría dar problemas en, por ejemplo, JRuby). – Linuxios

Cuestiones relacionadas