Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O que significa o | no código?

Olá a todos, na aula 1.6 de Ruby III (Lógica de Programação) foi usado no código o caractere | e fiquei sem entender qual o real motivo.

def encontra_jogador(mapa)
    caractere_do_heroi = "H"
    mapa.each_with_index do |linha_atual, linha|
        coluna_do_heroi = linha_atual.index caractere_do_heroi
        if coluna_do_heroi 
                #Achei o heroi
        end
    end
    #não achei!
end

Eu entendi como vai funcionar o laço do do mapa.each_with_index, mas não entendi o |linha_atual, linha|. Obrigado pela ajuda.

2 respostas
solução!

Oi Leandro

Muitos métodos no ruby recebem blocos, como é o caso dos Enumerable com o each_with_index. Esse método recebe como argumento um bloco que deve ser executado para cada item dentro do mapa. Mas esse método, para cada objeto, além de passar o item correspondente como parametro para a variável linha_atual, ele também passa o índice, que vai na variável linha.

O | é usado como delimitador dentro do bloco para separar os argumentos. Você pode pensar como se fossem (mas não são!) parenteses.

Obrigado pela explicação, Paulo. Agora realmente entendi.

Abraços!