1
resposta

"Erro na comparação"

Olá, estou assistindo a primeira aula de ruby. Fiz um código bem simples, que é:

nome = gets
puts "Olá! "+nome+"eu sou o seu primeiro programa em ruby"
puts
puts nome+",Qual a sua idade?"
idade = gets
puts
puts "25".to_i == idade
puts idade == "20".to_i

Quando eu digito idade = 25 O programa imprime: false false

Porém se eu trocar a seguinte linha de codigo:

puts "25".to_i == idade

para

puts "25".to_i == idade.to_i

O programa retorna:

true
false

Como esperado. Pelo que me parece, na linha:

idade = gets

O Ruby entende que idade é uma string. No entanto no vídeo do guilherme, a linguagem indentifica naturalmente que aquilo é um número. Alguém sabe por que ?

Estou usando a versão 2.5.1 do ruby.

Muito Obrigado

1 resposta

Oi César, tudo bem? De fato, o gets sempre vai retornar uma string pra você e na entrada, a boa prática seria converter esse valor. Em que vídeo o Gui faz isso exatamente pra mim verificar? Acredito que ele já deixe o to_i direto encadeado no gets assim:

idade = gets.to_i