2012-08-12 5 views
7

Ho letto la documentazione dei metodi assoc e rassoc di Ruby array. Capisco cosa fanno. Entrambi lavorano su array di array. assoc restituisce l'array il cui primo elemento è uguale al parametro fornito e rassoc fa lo stesso, ma per il secondo elemento.Qual è lo scopo dei metodi dell'array di Ruby associati e rassoc?

La mia domanda è: a cosa servono questi metodi? Questa funzionalità è molto specifica. Sto indovinando c'è qualche motivo per cui questi metodi sono stati creati. che cos'è?

risposta

5

Ci sono un paio di motivi, ma il principale è in modo che un array possa agire come un hash. Penso che, poiché gli hash sono non ordinati, i designer di Ruby avevano bisogno di un modo per rappresentare un hash in modo ordinato. Penso che ci siano molti metodi Enumerable che restituiscono gli array quando vengono richiamati su un hash.

+1

Le funzioni equivalenti si trovano in Lisp; forse è lì che Ruby li ha presi. – echristopherson

+0

Dalla versione 1.9, gli hash di Ruby sono garantiti per iterare nell'ordine di inserimento. (Sono d'accordo con te, però). – johncip

+0

@johncip: Avevo l'impressione che quel nuovo comportamento hash non fosse universale (dato che, affidarsi a esso potrebbe dare problemi, per esempio, a JRuby). – Linuxios