試圖在這裏寫一個簡單的Ruby程序。我試圖讓程序要求用戶最喜歡的號碼,然後建議一個新的最喜歡的號碼。下面的代碼有什麼問題?簡單的Ruby程序...需要幫助
puts "hey, whats your favorite number?"
favnumber = gets.chomp
newfavnumber = favnumber.to_i + 1
puts "how about " + newfavnumber "?"
試圖在這裏寫一個簡單的Ruby程序。我試圖讓程序要求用戶最喜歡的號碼,然後建議一個新的最喜歡的號碼。下面的代碼有什麼問題?簡單的Ruby程序...需要幫助
puts "hey, whats your favorite number?"
favnumber = gets.chomp
newfavnumber = favnumber.to_i + 1
puts "how about " + newfavnumber "?"
puts "how about " + newfavnumber "?"
首先,你可能希望"?"
有前+
。現在寫這個的方式,它解析爲puts("how about " + newfavnumber("?"))
,即你正在調用一個名爲newfavnumber
的函數,這顯然不是你想要的。
但是,如果您將其更改爲puts "how about " + newfavnumber + "?"
,您推測它打算使用它,它仍然不起作用:newfavnumber
是一個數字,"how about "
是一個字符串。在紅寶石中,你不能將數字添加到字符串。要解決這個問題,你可以撥打to_s
newfavnumber
將其轉換爲字符串。
寫一個更好的方法是使用字符串插值:puts "how about #{newfavnumber}?"
。這樣您不需要撥打to_s
,因爲您可以使用#{}
內的任何類型。
這很容易,但在未來,最好還包括你得到的_error message_。 – sarnold 2012-04-05 23:56:26