Question

Ceci est a été mise sur écoute moi depuis un certain temps.

>> nil.id
(irb):2: warning: Object#id will be deprecated; use Object#object_id
=> 4

Pourquoi serait nil.id être 4? (Ou nil.object_id si vous voulez être pointilleux sur deprecations)

Était-ce utile?

La solution

Ceci est parce que nul est un objet créé lorsque la langue initialise et id de cet objet se trouve être toujours 4.

Pour plus d'informations sur la raison pour laquelle l'ID se trouve être 4, voir ce billet de blog.

Autres conseils

J'ai toujours cru qu'il était un œuf de Pâques fraîche. Au Japon 4 est le nombre de décès

Il arrive que l'identifiant de chaque objet devait être représenté en quelque sorte dans l'interpréteur Ruby C. Les chiffres se sont mis en correspondance (nombre * 2) +1, truthiness a 0, 2 et a obtenu fausseté nul avait 4 gauche. D'une manière juste un problème d'implémentation de bizarre ou d'abstraction qui fuit. Ne vous inquiétez pas à ce sujet, sauf si vous voulez écrire un interpréteur Ruby.

Si vous essayez cela dans irb vous obtenez 4

irb
>> NIL.id
(irb):7: warning: Object#id will be deprecated; use Object#object_id
=> 4

Dans les Japonais rubis sur les méthodes établies nil l'appellent retourne 4, il est la norme linguistique qu'ils mettent en 4 comme « dangereuses » ou « mort »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top