1
resposta

Retirar variável de uma função sem executa-la

Olá, fique com uma dúvida durante o curso e montei um exemplo simples para explicar:

Vamos supor que eu tenha uma função e ela retorne um valor X, existe alguma forma de inserir o retorno desta função em uma variável sem executa-la?

por exemplo o seguinte código:

    def digite_um_numero
            puts "Dígite um número"
           numero = gets.to_i
            puts "O número digitado foi #{numero}."
            numero
    end

    digite_um_numero

Esta é minha dúvida, mesmo a estrutura de criar variáveis "numero_digitado = digite_um_numero" executa a função, no caso deste exemplo, a função é executada duas vezes seguidas, como faço para criar uma variável utilizando o valor retornado da função, neste caso "numero", sem que a função seja executada?

Desculpe se ficou confuso kkkk

1 resposta

Leo, não tem como :/. A função não é executada quando é definida, e como não tem como o computador saber o que ela vai retornar antes de tentar executá-la, temos que chamá-la. O jeito seria mesmo:

def digite_um_numero
    puts "Digite um número"
    numero = gets.to_i
    puts "O número digitado foi #{numero}."
    numero
end

numero_digitado = digite_um_numero

Dessa forma, a função é executada apenas uma vez e o valor de retorno é armazenado na variável numero_digitado.