Este tutorial discutirá varias formas en que puede iterar sobre los elementos en una matriz de rubí.
Creando una matriz
En Ruby, podemos crear una matriz agregando una lista de valores separados por comas dentro de un par de soportes cuadrados. Cada elemento de la matriz se conoce como elemento y puede ser de cualquier tipo de ruby.
myArray = [1,2,3.9, "Hola", "Mundo", [], ]
El ejemplo anterior muestra una matriz simple que comprende varios tipos de elementos, como enteros, carrozas, cuerdas, matrices, hashes y más.
En algunos casos, es posible que tenga una matriz compuesta solo por tipo de cadena. En ese caso, puede crear y encerrar los valores en %w
Ejemplo:
Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
Si usamos la sintaxis anterior para crear una matriz, Ruby separará los valores por espacios en blanco y creará elementos individuales, como se muestra a continuación:
imprimir bases de datos
["MySQL", "PostgreSQL", "Redis", "Memcached,", "MongoDB,", "Elasticsearch"]
Iterando sobre una matriz
Iterando sobre una matriz y trabajar con elementos individuales es un concepto de programación fundamental. Ruby nos proporciona algunos métodos para realizar una tarea de este tipo.
Usando cada método
El ruby enumerable#Cada método es la forma más simplista y popular de iterar elementos individuales en una matriz.
Acepta dos argumentos: el primero es una lista enumerable, y el segundo es un bloque. Toma cada elemento en la lista proporcionada y ejecuta el bloque, tomando el elemento actual como parámetro.
Aquí hay un ejemplo:
Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
bases de datos.cada do | i |
pone yo
fin
El ejemplo simple anterior ilustra cómo funciona el método. Toma cada elemento en la matriz de bases de datos y ejecuta un bloque con el elemento actual. En nuestro ejemplo, el bloque es un método simple de poner.
La salida resultante es cada elemento en la matriz como:
$ Ruby Iterator.RB
Mysql,
… ,
Mongodb,
Elasticsearch
Usando cada método cada_with_index
En algunos casos, es posible que deseemos imprimir el elemento y su índice de posición en la matriz. Para hacer esto, podemos usar el método cada_with_index
Funciona como cada método pero devuelve ambos elementos y sus posiciones de índice como:
Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
bases de datos.cada_with_index do | elemento, índice |
pone " #index => #elemento"
fin
En el ejemplo anterior, Ruby devolverá cada elemento en la matriz asignada a su índice como se muestra:
0 => mysql,
1 => PostgreSQL,
… ,
5 => Elasticsearch
Usando un bucle para
Al igual que en la mayoría de los lenguajes de programación, también puede iterar sobre los elementos en una matriz utilizando un bucle para.
Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
para elemento en bases de datos
Punta Elemento
fin
El ejemplo anterior funciona como cada método y devuelve elementos individuales en la matriz.
Usando seleccionar
Ruby también tiene otro método para iterar sobre los elementos en una matriz: el método de selección. El método Seleccionar funciona como se muestra en el ejemplo a continuación
Bases de datos = %W MySQL, PostgreSQL, Redis, Memcached, MongoDB, Elasticsearch
bases de datos.seleccionar hacer | i |
pone yo
fin
El método de selección es útil cuando desea un subconjunto que cumpla con criterios específicos. Por ejemplo, seleccione solo valores pares en una matriz como se muestra:
Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
numeros.seleccionar hacer | i |
i.incluso?
fin
El ejemplo anterior debe devolver solo un subconjunto de la matriz NUMS donde el elemento es par.
=> [20, 28, 2, 100, 34, 22]
Uso de mapa
El método del mapa es otra forma de iterar sobre los elementos en una matriz. La funcionalidad funciona de manera similar a cualquier iterador de matriz en Ruby. Sin embargo, es principalmente útil cuando quieres transformar la matriz.
Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
numeros.mapa do | i |
i * 3
fin
El ejemplo anterior devolverá un nuevo objeto con los elementos en la matriz multiplicada por 3.
Si desea afectar la matriz original, puede usar el mapa! método.
Nums = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
numeros.mapa! hacer | i |
i * 3
fin
impresión
[3, 60, 69, 84, 6, 300, 102, 159, 66, 63, 33]
En el ejemplo anterior, el mapa! El método altera la matriz de origen y crea una matriz con las modificaciones especificadas.
Conclusión
Esta guía discutió cómo iterar sobre los elementos en una matriz usando bucles y otros métodos de rubí incorporados.