Error: no implicit conversion of Integer into String (TypeError)

1

I chose the ruby language to learn how to program but I'm stuck in the following exercise :

Write a program that asks for a person's favorite number. Add one to the number, and suggest the result as a much better favorite number

I can only multiply the number and not add

puts 'Olá, qual é seu número favorito ?'
name = gets.chomp
puts 'Seu número favorito é ' + name + '?  Que número legal!'
puts 'Eu acho que, ' + name * 1 + ' é um número favorito muito melhor. :)'

If I change : ' + name * 1 + ' by ' + name + 1 + '

  

new.rb: 4: in + ': no implicit conversion of Integer into String (TypeError)

    
asked by anonymous 09.09.2017 / 20:16

1 answer

3

The return of gets.chomp is string . It is necessary to convert this data to integer before attempting any arithmetic operation.

This is possible using the to_i method. Note that to use the text representation of the number, you must use the to_str method.

puts 'Olá, qual é seu número favorito ?'
name = gets.chomp.to_i

puts 'Seu número favorito é ' + name.to_s + '?  Que número legal!'
puts 'Eu acho que, ' + (name + 1).to_s + ' é um número favorito muito melhor. :)'

See working on repl.it.

    
09.09.2017 / 20:46