2010-09-30 3 views
1

J'ai trouvé une question comme celle-ci sur stackoverflow, mais elle ne répond pas à ma question.Méthode non définie `id 'dans Ruby Program simple

Je suis avec http://www.ruby-doc.org/docs/ProgrammingRuby/ pour apprendre Ruby, mais je rencontre des problèmes avec le code d'exemple et c'est frustrant.

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

Le message d'erreur que je reçois est:

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

Il est évident que je suis sous Windows (Vista) et je suis en 1.9.2p0 rubis (2010-08-18) [i386 -mingw32]. Je me demande si mon livre est obsolète et que Ruby a eu le temps de mûrir depuis que ce livre est sorti (la deuxième édition est disponible à l'achat)

J'ai eu le même problème avec .id dans un exemple de code Jukebox, mais j'ai pensé que c'était un coup de chance et continué. Je comprends ce qu'est l'erreur, mais je ne comprends pas pourquoi.

Répondre

11

id est déprécié et remplacé par object_id.

type est également déprécié. Utilisez class à la place.

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

Sortie:

69284020 
String 
Tim 

Se reporter à this pour les méthodes d'objet.

0

Je l'ai trouvé, j'avais raison, .id est déprécié, .object_id est ce qui devrait être utilisé.

+3

Est-ce que je mérite un «clic sur»? ;) –

Questions connexes