Ruby – Blocos de códigos

Blocos de código são trechos do código delimitados por “{ }” ou “do … end” que podem ser passados como “parâmetros” para funções, podendo ser chamados dentro dela. Exemplo:

[3,4,5].each{ puts hello }

No exemplo acima, a função “each” varre o array executando o código entre as chaves para cada elemento, como um iterador. Nesse caso, imprimindo “hello” três vezes na tela. Um dos usos mais comuns de blocos de código é justamente iterar sobre os elementos de um array, que podem ser passados como parâmentro para o bloco:

[3,4,5].each{ |x| puts x }

Agora podemos usar o valor “x”, fornecido pela função, dentro do nosso bloco. Os blocos podem ter mais de um parâmetro, sendo separados por vírgula entre o par de barras verticais.

Para criar funções que possam receber blocos de códigos, basta colocar a instrução “yield” dentro do corpo da função. Cada vez que o yield é executado, ele executa o bloco associado. Para passar parâmetros, eles são colocados logo depois do yield. Exemplo:

def calc(a, b)
    yield a, b
end
calc(3,4){ |x,y|   x*y}
Anúncios