我在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相同的问题,但我认为这是一个侥幸并继续。我明白错误是什么,但我不明白为什么。
答案 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是应该使用的。