2016-07-22 71 views
0

我有以下作爲一個簡單的Ruby培訓計劃的一部分:Ruby`to_i!`方法不起作用。奇怪,爲什麼

返回一個錯誤:

user_num = gets.chomp 
user_num.to_i! 

正常工作:

user_num = Integer(gets.chomp) 

正常工作:

user_num = gets.chomp.to_i 

正常工作:

user_numX = gets.chomp 
user_num = user_numX.to_i 

下面是程序:

print "Integer please: " 
#code insert location 

if user_num < 0 
    puts "You picked a negative integer!" 
elsif user_num > 0 
    puts "You picked a positive integer!" 
else 
    puts "You picked zero!" 
end 

爲什麼一審返回一個錯誤,但其他三個做工精細任何想法?第一個應該可以正常工作。這是在擾亂我。謝謝。

+4

'user_num.to_i!'不只是「返回一個錯誤」,它引發了一個特定的異常和錯誤信息:'NoMethodError:undefined method'to_i!'爲「2」:字符串(如果輸入「2」)。這恰好告訴你問題是什麼:類'String'沒有實例方法'to_i!'。仔細關注錯誤消息,當在SO問題中提及它們時,請包括消息的所有相關部分,包括髮生異常的行。 –

回答

2

根據Ruby Doc的方法String#to_i!不存在,所以這應該解釋爲什麼你收到我認爲是一個NoMethodError。

相關問題