Ogni array e hash in Ruby è un oggetto e ogni oggetto di questi tipi ha una serie di metodi integrati. I programmatori che non conoscono Ruby possono imparare a usare il ogni metodo con un array e un hash seguendo i semplici esempi presentati qui.
Innanzitutto, crea un oggetto array assegnando l'array a "tirapiedi".
>> stooges = ['Larry', 'Curly', 'Moe']
Quindi, chiama ciascun metodo e crea un piccolo blocco di codice per elaborare i risultati.
>> stooges.each | stooge | stampa tirapiedi + "\ n"
Questo codice produce il seguente output:
Larry
Riccio
Moe
Ciascun metodo accetta due argomenti: un elemento e un blocco. L'elemento, contenuto all'interno dei tubi, è simile a un segnaposto. Tutto ciò che si inserisce all'interno dei tubi viene utilizzato nel blocco per rappresentare a turno ciascun elemento dell'array. Il blocco è la riga di codice che viene eseguita su ciascuno degli elementi dell'array e gli viene consegnato l'elemento da elaborare.
È possibile estendere facilmente il blocco di codice a più righe utilizzando fare per definire un blocco più grande:
>> stuff.each do | cosa |
cosa di stampa
stampa "\ n"
fine
È lo stesso del primo esempio, tranne per il fatto che il blocco è definito come tutto dopo l'elemento (in pipe) e prima dell'istruzione end.
Proprio come l'oggetto array, l'oggetto hash ha un metodo ogni che può essere usato per applicare un blocco di codice su ogni elemento nell'hash. Innanzitutto, crea un semplice oggetto hash che contenga alcune informazioni di contatto:
>> contact_info = 'name' => 'Bob', 'phone' => '111-111-1111'
Quindi, chiamare ciascun metodo e creare un blocco di codice a riga singola per elaborare e stampare i risultati.
>> contact_info.each | chiave, valore | chiave di stampa + '=' + valore + "\ n"
Questo produce il seguente output:
nome = Bob
telefono = 111-111-1111
Funziona esattamente come ogni metodo per un oggetto array con una differenza cruciale. Per un hash, crei due elementi: uno per la chiave hash e uno per il valore. Come l'array, questi elementi sono segnaposto che vengono utilizzati per passare ogni coppia chiave / valore nel blocco di codice mentre Ruby scorre attraverso l'hash.
Puoi estendere facilmente il blocco di codice a più righe usando do per definire un blocco più grande:
>> contact_info.each do | chiave, valore |
stampa chiave di stampa + '=' + valore
stampa "\ n"
fine
Questo è lo stesso del primo esempio di hash, tranne per il fatto che il blocco è definito come tutto dopo gli elementi (in pipe) e prima dell'istruzione end.