2010-09-30 56 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

相关问题