Это ваш код:
puts ‘hello, what is your favorite number?
fav = gets.to_i
puts fav + 1 ‘would be a better choice!’
Первое, что выключено, это отсутствие закрывающей кавычки в первой строке.Следующая вещь, которая должна быть изменена и вызывает ошибку:
fav + 1 'would be a better chocice!'
fav
- это целое число, так же как и 1
, так что все в порядке, но просто запись строки после этого вызоветошибка.Поэтому мы должны сказать Ruby, что хотим объединить int и строку, и мы делаем это со знаком плюс (+
).Но попытка объединить int со строкой приведет к ошибке String can't be coerced into Integer
.Поэтому нам нужно как-то преобразовать int в строку.И мы делаем это, используя метод #to_s
, который возвращает строковое представление целого числа, которое приводит нас к:
puts 'hello, what is your favorite number?'
fav = gets.to_i
puts (fav + 1).to_s + ' would be a better choice!'
Однако, изменяя последнюю строку для использования интерполяции строки:
puts "#{fav + 1} would be a better choice!"
Был бы (как сказал Крис в разделе комментариев) идиоматический способ Ruby сделать это.
Я бы также рекомендовал вам взглянуть на вики-тег Ruby и проверить все доступные ресурсы на Ruby, поскольку онидаст вам лучшую кривую обучения, чем просто практиковать случайные методы и прочее самостоятельно.Удачи!