Ruby: Entendendo Each, Select, Map e Collect!
Oi, galera! Hoje vamos falar sobre algumas ferramentas superúteis do Ruby que podem parecer complicadas, mas são mais fáceis do que você pensa. Vou explicar quando usar each
, select
, map
e collect
, e vou mostrar com exemplos práticos. Bora lá?
Each: O Passeio pelo Parque
Usar each
é como dar um passeio pelo parque e cumprimentar cada pessoa que você encontra. Ele simplesmente passa por cada elemento de uma lista, faz alguma coisa com ele, mas não muda a lista original. Veja só:
[1,2,3].each { |x| puts x + 1 }
# Saída:
# 2
# 3
# 4
Select: O Filtro dos Sonhos
Agora, select
é como ter um filtro mágico que só deixa passar o que você quer. Ele cria uma nova lista só com os itens que passam no seu teste. Tipo isso:
a = [1,2,3,4,5]
a = a.select { |x| x > 2 }
puts a.inspect
# Saída: [3, 4, 5]
Map e Collect: Os Transformadores
map
e collect
são como transformers: eles pegam sua lista e transformam em algo novo. Eles são praticamente gêmeos, fazem a mesma coisa. Eles pegam cada item, fazem alguma mágica com ele e te dão uma lista nova toda transformada:
a = [1,2,3,4,5,6]
a = a.map { |x| x + 1 }
puts a.inspect
# Saída: [2, 3, 4, 5, 6, 7]
E o legal é que com map!
ou collect!
, você pode mudar a lista original sem precisar criar uma nova:
a = [1,2,3,4,5,6]
a.map! { |x| x + 1 }
puts a.inspect
# Saída: [2, 3, 4, 5, 6, 7]
Bônus: Each_with_index
E tem mais! Se você quiser não só o elemento, mas também saber a posição dele na lista, each_with_index
é seu novo melhor amigo. Ele é tipo um guia turístico que te mostra o lugar e ainda te conta a história:
a = ['maçã', 'banana', 'cereja']
a.each_with_index { |item, index| puts "#{index}: #{item}" }
# Saída:
# 0: maçã
# 1: banana
# 2: cereja
E aí, ficou mais claro? Com essas ferramentas, você pode fazer seu código Ruby brilhar e ainda entender o que está acontecendo. Agora é só experimentar e ver como elas podem facilitar sua vida de programador!
Respeite os direitos autorais. Problemas ou funcionalidades? Envie um e-mail para [email protected]. Quer usar o Link Reader em todas as abas? Pegue aqui.