2014-12-28 104 views
0

我正在經歷克里斯派恩的學會編程,我無法讓這個練習工作。 從用戶那裏得到一個num,然後應該告訴用戶num + 1是一個更大更好的數字。我在哪裏可以在此代碼中調用'.to_i'?

有了這個代碼: 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)

所以我的字符串變量實際上並沒有得到轉換爲整數,對不對?我如何完成這項工作?

回答

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." 
+0

謝謝!這工作! – Ric

+0

@RicReyes,歡迎來到Stack Overflow!如果這對你有幫助,你可以通過[接受答案](http://meta.stackoverflow.com/a/5235)告訴社區。 – falsetru

+0

再次感謝!堆棧溢出非常有用,但我顯然還在學習繩索。 :) – Ric

-1

以此作爲最後一行 -

puts "#{num} is a bigger and better favorite number." 
相關問題