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

g3k*_*g3k 1 ruby

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

我正在跟随http://www.ruby-doc.org/docs/ProgrammingRuby/学习Ruby,但是我遇到了示例代码的问题而且令人沮丧.

person = "Tim"
puts person.id
puts person.type
puts person
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是:

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

显然我正在运行Windows(Vista),我正在运行ruby 1.9.2p0(2010-08-18)[i386-mingw32].我想知道我的问题是因为这本书已经过时,而且自从这本书出版以来Ruby已经有一段时间成熟了(第二版可以在此时购买)

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

OMG*_*uts 11

id已弃用并替换为object_id.

type也已弃用.请class改用.

person = "Tim"
puts person.object_id
puts person.class
puts person
Run Code Online (Sandbox Code Playgroud)

输出:

69284020
String
Tim
Run Code Online (Sandbox Code Playgroud)

请参阅为对象的方法.