Questo tutorial discuterà di vari modi in cui puoi iterare sugli oggetti in un array di rubini.
Creazione di un array
In Ruby, possiamo creare un array aggiungendo un elenco di valori separati da virgola all'interno di una coppia di parentesi quadrate. Ogni elemento nell'array è noto come elemento e può essere di qualsiasi tipo di rubino.
myArray = [1,2,3.9, "ciao", "mondo", [], ]
L'esempio sopra mostra un semplice array composto da vari tipi di elementi come numeri interi, galleggianti, stringhe, array, hash e altro ancora.
In alcuni casi, potresti avere un array composto solo dal tipo di stringa. In tal caso, è possibile creare e racchiudere i valori in %w
Esempio:
Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
Se utilizziamo la sintassi sopra per creare un array, Ruby separerà i valori per spazi bianchi e creerà singoli elementi, come mostrato di seguito:
Stampa database
;
Iterato su un array
Iterare su un array e lavorare con singoli elementi è un concetto di programmazione fondamentale. Ruby ci fornisce alcuni metodi per eseguire tale compito.
Usando ogni metodo
L'enumerabile Ruby#Ogni metodo è il modo più semplicistico e popolare per iterare singoli elementi in un array.
Accetta due argomenti: il primo è un elenco enumerabile e il secondo è un blocco. Prende ogni elemento nell'elenco fornito ed esegue il blocco, prendendo l'elemento corrente come parametro.
Ecco un esempio:
Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
banche dati.ognuno do | i |
mi mette
FINE
Il semplice esempio di cui sopra illustra come funziona il metodo. Prende ogni elemento nell'array di database ed esegue un blocco con l'elemento corrente. Nel nostro esempio, il blocco è un metodo semplice.
L'output risultante è ciascun elemento nell'array come:
$ Ruby Iterator.Rb
Mysql,
.. ,
MongodB,
Elasticsearch
Utilizzo di ciascuno_with_index Metodo
In alcuni casi, potremmo voler stampare l'elemento e il suo indice di posizione nell'array. Per fare ciò, possiamo usare il metodo Each_with_index
Funziona come ogni metodo ma restituisce sia gli elementi che le loro posizioni dell'indice come:
Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
banche dati.ciascuno_with_index do | elemento, indice |
mette " #indice => #element"
FINE
Nell'esempio sopra, Ruby restituirà ogni elemento nell'array mappato al suo indice come mostrato:
0 => mysql,
1 => PostgreSQL,
.. ,
5 => Elasticsearch
Usando un ciclo per
Come nella maggior parte dei linguaggi di programmazione, puoi anche iterare sugli elementi in un array usando un loop per.
Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
per elemento nei database
mette l'elemento
FINE
L'esempio sopra funziona come ogni metodo e restituisce singoli elementi nell'array.
Usando Seleziona
Ruby ha anche un altro metodo per ripetere gli elementi in un array: il metodo seleziona. Il metodo Select funziona come mostrato nell'esempio seguente
Database = %W MySQL, PostgreSQL, Redis, MemCached, MongoDB, ElaSticSearch
banche dati.Seleziona do | i |
mi mette
FINE
Il metodo Select è utile quando si desidera un sottoinsieme che soddisfi criteri specifici. Ad esempio, selezionare solo anche i valori in un array come mostrato:
nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
nums.Seleziona do | i |
io.Anche?
FINE
L'esempio sopra dovrebbe restituire solo un sottoinsieme dell'array nums in cui l'elemento è pari.
=> [20, 28, 2, 100, 34, 22]
Usando la mappa
Il metodo della mappa è un altro modo per iterare sugli elementi in un array. La funzionalità funziona in modo simile a qualsiasi iteratore di array in Ruby. Tuttavia, è principalmente utile quando si desidera trasformare l'array.
nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
nums.Mappa do | i |
I * 3
FINE
L'esempio sopra restituirà un nuovo oggetto con gli elementi nell'array moltiplicato per 3.
Se si desidera influenzare l'array originale, è possibile utilizzare la mappa! metodo.
nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
nums.carta geografica! do | i |
I * 3
FINE
Stampa nums
[3, 60, 69, 84, 6, 300, 102, 159, 66, 63, 33]
Nell'esempio sopra, la mappa! Il metodo altera l'array di origine e crea un array con le modifiche specificate.
Conclusione
Questa guida ha discusso di come iterare sugli oggetti in un array che utilizza per loop e altri metodi di rubino integrati.