2010-09-30 52 views
1

我在stackoverflow上發現了一個這樣的問題,但它不回答我的問題。在簡單的Ruby程序中未定義的方法`id'

我跟着http://www.ruby-doc.org/docs/ProgrammingRuby/學習Ruby,但我遇到了示例代碼的問題,這很令人沮喪。

person = "Tim" 
puts person.id 
puts person.type 
puts person 

我得到的錯誤信息是:

C:/Users/g3k/Desktop/Ruby/person.rb:2:in `<main>': undefined method `id' for "Tim":String (NoMethodError) 

很顯然,我運行Windows(Vista),然後我跑紅寶石1.9.2p0(2010-08-18)[I386 -mingw32。我想知道我的問題是因爲這本書已經過時了,而Ruby自從本書出版以來已經有一段時間了(第二版可以在此購買)

我在.id中遇到了同樣的問題一個Jukebox示例代碼,但我認爲這是一個僥倖,並繼續。我明白錯誤是什麼,但我不明白爲什麼。

回答

11

id已棄用,由object_id替代。

type也被棄用。改爲使用class

person = "Tim" 
puts person.object_id 
puts person.class 
puts person 

輸出:

69284020 
String 
Tim 

參考this爲對象的方法。

0

想通了,我是對的,.id是折舊的,.object_id是應該使用的。

+3

我應該得到'滴答滴答'? ;) – 2010-09-30 16:00:42

相關問題