1
resposta

Porque o código funciona mesmo com variáveis diferentes?

Se entendi bem, na função de ler o rank, ela retorna uma variável chamada "conteudo"

def le_rank
    conteudo = File.read "rank.txt"
    conteudo.split "\n"
end

Porém, na função que vai mostrar esse resultado, o Prof. Guilherme coloca a função passando "dados", e funciona normalmente, alguém saberia o por que?

def avisa_campeao_atual (dados)
    puts "O atual Campeão é: #{dados[0]}, com #{dados[1]} pontos."
end

Também testei substituindo a palavra "dados" por "conteudo" e continua funcionando normalmente.

1 resposta

Oi Áurio, tudo bem? Ah, essa é uma pergunta legal, vamos lá!

No primeiro trecho, é isso mesmo, você cria uma variável e atribui a ela o valor retornado pela função read que tá dentro desse tal de File.

No segundo trecho, você tem esse dados entre parênteses e usa ele dentro do puts para mostrar as informações.

Agora vamos tentar combinar os dois trechos assim:

avisa_campeao_atual le_rank

O que acontece é:

1 - a função le_rank lê o arquivo e retorna os dados que estão na veriável conteudo

2 - a função avisa_campeao_atual precisa de um argumento para executar, que é esse dados que está entre parênteres. Aqui o argumento é como uma variável que existe apenas dentro daquela função.

3 - Considerando o que aprendemos até agora, o resultado do le_rank é atribuído como argumento da função avisa_campeao_atual e por meio da variável dados, você consegue acessar esse valor.

O dados ali, é uma variável que vai receber um valor quando a função avisa_campeao_atual for executada. O nome dela, não precisa ser dados, pode ser qualquer um.