Eu entendi que quando usamos o gets pra armazenar uma variável, ela é do tipo fica do tipo string. Por exemplo:
a = gets
a.class
Na saída terei String
É possível diferenciar se essa string é um número ou não? Se sim, como?
Eu quero fazer uma função que pede um número pro usuário, mas que, toda vez que o usuário não digitar um número, informe-o que ele não digitou um número e peça para que ele tente novamente.
Consegui resolver parcialmente o problema quando o número é diferente de zero já que quando uso o comando .to_i ele converte uma string diferente de números pra zero. Assim, o código ficou:
loop do
puts "Entre com o número:"
numero = gets.to_i
if numero != 0
return numero
else
puts "\n"
puts "Você não digitou um número, tente novamente!"
puts "\n"
end
end
Mas isso não resolve o problema pra quando o número digitado é zero.