简单Ruby程序中的未定义方法`id'

时间:2010-09-30 15:30:39

标签: ruby

我在stackoverflow上发现了一个这样的问题,但它没有回答我的问题。

我跟着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),我正在运行ruby 1.9.2p0(2010-08-18)[i386-mingw32]。我想知道我的问题是因为这本书已经过时,而且自从这本书出版以来Ruby已经有一段时间成熟了(第二版可以在此时购买)

我在Jukebox示例代码中遇到了与.id相同的问题,但我认为这是一个侥幸并继续。我明白错误是什么,但我不明白为什么。

2 个答案:

答案 0 :(得分:11)

id已弃用,已替换为object_id

type也已弃用。请改用class

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

输出:

69284020
String
Tim

有关对象的方法,请参阅this

答案 1 :(得分:0)

想出来,我是对的,.id是折旧的,.object_id是应该使用的。