在这里尝试编写一个简单的Ruby程序。我正在尝试让程序询问用户最喜欢的号码,然后建议一个更大的新收藏号码。下面的代码出了什么问题?
puts "hey, whats your favorite number?"
favnumber = gets.chomp
newfavnumber = favnumber.to_i + 1
puts "how about " + newfavnumber "?"
答案 0 :(得分:2)
puts "how about " + newfavnumber "?"
首先,您可能希望+
之前有"?"
。现在编写它的方式,它解析为puts("how about " + newfavnumber("?"))
,即你正在调用一个名为newfavnumber
的函数,这显然不是你想要的。
但是,如果您将其更改为您可能想要的puts "how about " + newfavnumber + "?"
,它仍然无效:newfavnumber
是一个数字,"how about "
是一个字符串。在ruby中,您无法向字符串添加数字。要解决此问题,您可以致电to_s
上的newfavnumber
将其转换为字符串。
更好的方法是使用字符串插值:puts "how about #{newfavnumber}?"
。这样您就不需要致电to_s
,因为您可以使用#{}
内的任何类型。
答案 1 :(得分:1)
+
之后您错过newfavnumber
并转换为字符串。
puts "how about " + newfavnumber.to_s + "?"