Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre retornar o valor de uma função.

Entendi que os valores dentro de uma função fica encapsulado e só pode ser acessado associando o nome da função com uma variável, acho que até aqui, tudo bem. Como no exemplo abaixo, é possível armazenar mais de um valor dentro de uma função? E se for, como faço para acessá-lo?

def dados
   puts "Qual o seu nome?"
   nome = gets.chomp
   puts "Quantos anos você tem?"
   idade = gets.chomp
   return nome
   return idade
end

denominacao = dados

puts "\n\n" + denominacao.upcase + " teste concluído."

O resultado da execução do código é:

Qual o seu nome?eduQuantos anos você tem?12

EDU teste concluído.

Mas, se eu quisesse que a mensagem fosse: "EDU você tem 30 anos.Este teste é para quem tem 10 anos."O código deveria ser:

def informacao
   puts "Qual o seu nome?"
   denominacao = gets.chomp
   nome
end

def informacao1
   puts "Qual a sua idade?"
   anos = gets.chomp
end
nome = informacao
idade = informacao1
puts "\n" + nome.upcase + " você tem " + idade + "anos de idade".
puts "Este jogo é para quem tem 10 anos"

É isso mesmo? Só consigo armazenar e acessar uma valor por função?

1 resposta
solução!

Oi Eduardo tudo certo ?

No caso da primeira função, você poderia retornar o puts ao invés de retornar nome e idade

def dados
    puts "Qual o seu nome?"
    nome = gets.chomp
    puts "Quantos anos você tem?"
    idade = gets.chomp
    puts "O seu nome é \n\n" + nome.upcase + "\n\n Você tem " +idade + "anos, teste concluído."
 end

 dados

No geral funções devolvem apenas uma informação, o que você fez no segundo exemplo, é uma prática bastante utilizada.

Costumamos separar resposabilidades dentro de funções. No seu caso você tem uma função para nome e outra para idade.

Fica mais fácil de reutilizar essas funções para outras situações ou dar manutenção no código.

Uma observação seria o nome das funções, é sempre bom deixar claro o que cada uma faz, se possível nomear usando verbos, pq indica ação.

def pega_nome
end

def pega_idade
end