ruby-idiomatic hashes vs array

1

Quindi sono ancora abbastanza nuovo per Ruby, anche se ho notato che è molto difficile creare array 2d e che gli hash sembrano essere più di una struttura dati rispetto agli array.

Mi stavo chiedendo perché la community di Ruby sia così focalizzata su Hash e forse se c'è qualcosa di più rubino-idiomatico di un array 2D quando si cerca di creare qualcosa come un tabellone.

    
posta Tall Paul 05.07.2013 - 21:11
fonte

1 risposta

0

Molte volte un hash può essere più conveniente di un array. L'uso di una chiave composta (o hash di hash) può essere utilizzato per simulare array multidimensionali. Questo è di uso significativo quando l'array sarebbe altrimenti un array sparse o un [jagged array]. Hash può essere più facile per questi casi e possono essere sorprendentemente comuni.

Tuttavia, gli hash non sono dati ordinati. Mentre è molto facile inserire i dati in un hash, diventa più complicato rimetterlo in ordine. Molto più complicato del semplice utilizzo della matrice appropriata in primo luogo.

Un altro fattore da considerare, gli hash sono davvero facili. Ci sono un certo numero di trasformazioni con array di ruby che possono confondere: ci sono quasi il doppio dei metodi in Array come in Hash. Quindi, se stai semplicemente lanciando alcuni dati a cui vuoi accedere (e non ti interessa l'ordine), specialmente se si tratta di dati non correlati tra loro, metterli in un hash è molto più semplice da concettualizzare .

Molte volte, gli hash conservano un oggetto dati anonimo veloce con alcuni campi invece di creare una classe completamente nuova (probabilmente è una scelta migliore rispetto alla metaprogrammazione di un oggetto anonimo con i campi da passare). È più facile ricordare che 'userid' è nella chiave 'userid' piuttosto che nell'elemento 0 dell'array.

L'uso di un hash è solo idiomatico quando i dati non hanno già un ordine sottostante, enumerabile.

    
risposta data 05.07.2013 - 22:10
fonte

Leggi altre domande sui tag