Itera através de uma matriz em Ruby

Itera através de uma matriz em Ruby
Ruby é uma poderosa linguagem de programação que parece abraçar o conceito de fácil de aprender e usar fortemente. Quando se trata de executar tarefas quase fundamentais em Ruby, é provável que exista um método embutido para isso.

Este tutorial discutirá várias maneiras pelas quais você pode iterar sobre os itens em uma matriz de rubi.

Criando uma matriz

Em Ruby, podemos criar uma matriz adicionando uma lista de valores separados por vírgula dentro de um par de colchetes quadrados. Cada item da matriz é conhecido como elemento e pode ser de qualquer tipo de rubi.

MyArray = [1,2,3.9, "Hello", "World", [], ]

O exemplo acima mostra uma matriz simples, composta por vários tipos de elementos, como números inteiros, carros alegóricos, cordas, matrizes, hashes e muito mais.

Em alguns casos, você pode ter uma matriz composta apenas de tipo de string. Nesse caso, você pode criar e envolver os valores em %w

Exemplo:

bancos de dados = %w mysql, pósgresql, redis, memcached, mongodb, elasticsearch

Se usarmos a sintaxe acima para criar uma matriz, o Ruby separará os valores dos espaços em branco e criará elementos individuais, como mostrado abaixo:

Imprimir bancos de dados
Também

Iterando sobre uma matriz

Iterando sobre uma matriz e trabalhar com elementos individuais é um conceito fundamental de programação. Ruby nos fornece alguns métodos para executar essa tarefa.

Usando cada método

O Ruby Enumerable#Cada método é a maneira mais simplista e popular de iterar itens individuais em uma matriz.

Ele aceita dois argumentos: o primeiro é uma lista enumerável, e a segunda sendo um bloco. Ele pega cada elemento na lista fornecida e executa o bloco, tomando o item atual como um parâmetro.

Aqui está um exemplo:

bancos de dados = %w mysql, pósgresql, redis, memcached, mongodb, elasticsearch
bancos de dados.cada um | i |
coloca i
fim

O exemplo simples acima ilustra como o método funciona. Ele leva cada item na matriz de bancos de dados e executa um bloco com o item atual. Em nosso exemplo, o bloco é um método simples de puts.

A saída resultante é cada elemento na matriz como:

$ ruby ​​iterator.rb
Mysql,
.. ,
MongoDB,
Elasticsearch

Usando o método de cada_with_index

Em alguns casos, podemos querer imprimir o elemento e seu índice de posição na matriz. Para fazer isso, podemos usar o método Cada_with_index

Funciona como cada método, mas retorna os dois itens e suas posições de índice como:

bancos de dados = %w mysql, pósgresql, redis, memcached, mongodb, elasticsearch
bancos de dados.Cada_with_index do | elemento, índice |
coloca " #index => #elemento"
fim

No exemplo acima, Ruby retornará cada elemento na matriz mapeada ao seu índice como mostrado:

0 => mysql,
1 => PostgreSQL,
.. ,
5 => Elasticsearch

Usando um loop

Como na maioria das linguagens de programação, você também pode iterar sobre os elementos em uma matriz usando um loop para loop.

bancos de dados = %w mysql, pósgresql, redis, memcached, mongodb, elasticsearch
Para elemento em bancos de dados
coloca elemento
fim

O exemplo acima funciona como cada método e retorna elementos individuais na matriz.

Usando selecionar

Ruby também tem outro método para iterar os itens em uma matriz: o método de seleção. O método de seleção funciona como mostrado no exemplo abaixo

bancos de dados = %w mysql, pósgresql, redis, memcached, mongodb, elasticsearch
bancos de dados.Selecione Do | i |
coloca i
fim

O método de seleção é útil quando você deseja um subconjunto que atenda aos critérios específicos. Por exemplo, selecione apenas valores uniformes em uma matriz como mostrado:

NUMS = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
Nums.Selecione Do | i |
eu.até?
fim

O exemplo acima deve retornar apenas um subconjunto da matriz NUSS, onde o elemento é uniforme.

=> [20, 28, 2, 100, 34, 22]

Usando mapa

O método do mapa é outra maneira de iterar sobre os itens em uma matriz. A funcionalidade funciona de maneira semelhante a qualquer iterador de matriz em Ruby. No entanto, é principalmente útil quando você deseja transformar a matriz.

NUMS = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
Nums.mapa do | i |
I * 3
fim

O exemplo acima retornará um novo objeto com os itens na matriz multiplicada por 3.

Se você quiser afetar a matriz original, pode usar o mapa! método.

NUMS = [1,20, 23, 28, 2, 100, 34, 53, 22, 21, 11]
Nums.mapa! Faça | i |
I * 3
fim
Imprima nums
[3, 60, 69, 84, 6, 300, 102, 159, 66, 63, 33]

No exemplo acima, o mapa! O método altera a matriz de origem e cria uma matriz com as modificações especificadas.

Conclusão

Este guia discutiu como iterar os itens em uma matriz usando loops e outros métodos de rubi embutidos.