2

我正在执行 Chris Pine 的“学习编程”中的一项任务。该程序会询问一个人最喜欢的号码,加上 +1,然后显示结果。我写了这个:

puts 'Hello, what\' your favorite number?'
number = gets.to_i
puts 'Here\' a better bigger favorite number - ' + number + 1

它返回了这个:

Better_number.rb:3:in \'+\': no implicit conversion of Fixnum into String (TypeError)

我也试过

number = gets.chomp.to_i

但这似乎不起作用。

4

3 回答 3

2

尝试:

puts "Here\' a better bigger favorite number - #{number + 1}"

您不能将字符串与数字相加。

于 2016-04-22T09:52:30.427 回答
1

您不能在 ruby​​ 中将数字添加到字符串中。你必须把它变成一个字符串。

puts 'Hello, what\' your favorite number?'
number = gets.to_i
puts 'Here\' a better bigger favorite number - ' + (number + 1).to_s
# or 
bigger_number = number + 1
puts 'Here\' a better bigger favorite number - ' + bigger_number.to_s
# or 
puts "Here's a better bigger favorite number - #{bigger_number}"
于 2016-04-22T09:53:19.347 回答
0

您可以使用#{"interpolation"}来解决您的问题。

puts 'Hello, what\' your favorite number?'
number = gets.to_i
puts 'Here\' a better bigger favorite number - #{number + 1}'
于 2016-05-01T21:22:41.177 回答