Enumerable Ruby: each
Este curso apresenta os blocos do Ruby e o método each. Começa pelo que é um bloco, pelas duas sintaxes {} e do...end e pelos parâmetros entre pipes que recebem valores. Mostra como percorrer arrays e hashes com each, por que ele devolve a coleção original e como acumular resultados numa variável declarada fora do bloco. Apresenta o each_with_index para obter a posição dos elementos, também em hashes. Explica ainda a diferença de precedência entre {} e do...end e por que o escopo de bloco faz o each ser preferido ao for.
O que você vai aprender
- ✓O que é um bloco e como escrevê-lo com {} ou do...end
- ✓Como percorrer arrays e hashes com each e o que ele devolve
- ✓Como acumular resultados em variáveis declaradas fora do bloco
- ✓Como usar each_with_index, inclusive desestruturando pares de hash
- ✓A diferença de precedência entre {} e do...end
- ✓Por que o escopo de bloco faz o each ser preferido ao for
O que é um bloco?
A maioria das chamadas de método até agora nesta série passou valores simples como argumentos, como access_level("admin", true, false). O merge do curso de hashes recebeu um bloco uma vez, sem explicação. Um bloco é um pequeno pedaço de código sem nome passado para um método, que o método pode…
Ler a aula completa grátis →Currículo
7 aulasO que é um bloco?
Define bloco como código sem nome passado a um método, escrito com {} ou do...end e com parâmetros entre pipes.
Iterando arrays com each
Mostra como o each roda o bloco por elemento, devolve o array original e permite acumular fora do bloco.
each_with_index
Usa each_with_index para obter cada elemento com seu índice a partir de zero, em arrays e em hashes.
Iterando hashes com each
Percorre hashes com each usando parâmetros de chave e valor, ou um único parâmetro que recebe o par.
Escolhendo {} ou do...end
Explica a convenção de estilo de {} e do...end e como a precedência diferente pode prender o bloco ao método errado.
each vs loops for
Compara each com o loop for, mostrando que o for vaza variáveis e o bloco tem escopo local próprio.
Juntando tudo: um pequeno desafio
Reúne guard clause, acumulação, each_with_index num hash e do...end num pequeno desafio de gerar um relatório.