Cette question me préoccupe depuis un certain temps.
>> nil.id
(irb):2: warning: Object#id will be deprecated; use Object#object_id
=> 4
Pourquoi nil.id serait-il 4 ? (ou nil.object_id si vous voulez être pointilleux sur les dépréciations)
Cette question me préoccupe depuis un certain temps.
>> nil.id
(irb):2: warning: Object#id will be deprecated; use Object#object_id
=> 4
Pourquoi nil.id serait-il 4 ? (ou nil.object_id si vous voulez être pointilleux sur les dépréciations)
Cela se produit parce que l'identifiant de chaque objet doit être représenté d'une manière ou d'une autre dans l'interpréteur C Ruby. Les nombres ont été représentés par (nombre*2)+1, la véracité a obtenu 0, la fausseté a obtenu 2 et il restait 4 à nil. C'est juste un problème d'implémentation bizarre ou une fuite dans l'abstraction. Vous ne devriez pas vous en préoccuper, sauf si vous voulez écrire un interpréteur Ruby.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.