Я ударил по ошибке «не могу преобразовать Fixnum в String (TypeError)», и пока он кажется достаточно простым, я не уверен, как обойти Это. Я думал, что моя логика звучит - преобразовать введенную строковую переменную в целое число, а затем выполнить основную операцию, но, видимо, мне не хватает некоторого ключевого бита информации.'+' не может преобразовать Fixnum в String (TypeError)
puts 'What is your favourite number?'
favenum = gets.chomp
better = favenum.to_i + 1
puts 'Yeah '+favenum+' is nice enough but '+better+' is bigger and better by far! Think on.'
Пытался искать ответ, но примеры те же ошибки там находятся далеко за пределами моих зачаточных навыков рубина в настоящее время.
Таким образом, ошибка в моем коде находится в выводе переменных, а не в их манипулировании в строках выше? Правильно ли я думаю, что favenum первоначально хранится как строка? Может быть, учебник, которым я следую (http://pine.fm/LearnToProgram/?Chapter=04), не все, что он взломал, чтобы быть ...? –
@ DanSolo: Действительно, 'favenum' действительно является строкой и не должен вызывать ошибку. Это целая переменная 'better', которая вызывает ее. –
Отлично, спасибо. Теперь вы упомянули, что я могу логически понять, почему использование «+ лучше +», когда лучше целое число, приведет к ошибке. Спасибо за альтернативные варианты в том, чтобы обойти это. Мое путешествие продолжается ... –