我在哪里打电话给#to; .to_i'在这段代码?

时间:2014-12-28 13:31:33

标签: ruby string methods

我正在经历Chris Pine的学习计划,而我无法让这项练习奏效。 从用户获得num,然后应该告诉用户num + 1是一个更大更好的数字。

使用此代码: 1 puts 'What\'s your favorite number?' 2 num = gets.chomp 3 num = num.to_i + 1 4 puts num +' is a bigger and better favorite number.'

我在第4行遇到此错误: in '+': String can't be coerced into Fixnum (TypeError)

所以我的字符串变量实际上并没有转换为整数,对吗?我如何使这项工作?

2 个答案:

答案 0 :(得分:1)

在最后一行中,代码尝试将数字与字符串连接起来。

>> 1 + ' is ...'
TypeError: String can't be coerced into Fixnum
        from (irb):2:in `+'
        from (irb):2
        from C:/Ruby21-x64/bin/irb:11:in `<main>'

在连接之前将数字转换为字符串。 +和'...'

之间应该有空格
puts num.to_s + ' is a bigger and better favorite number.'
               ^

或使用字符串插值:

puts "#{num} is a bigger and better favorite number."

答案 1 :(得分:-1)

将此作为最后一行 -

puts "#{num} is a bigger and better favorite number."