Me he dado cuenta de que los objetos tienen sus identificaciones asignadas de manera contraintuitiva. Cuanto antes se crea un objeto, mayor es su ID de objeto. Hubiera pensado que se les hubiera asignado en orden ascendente, en lugar de al revés.¿Por qué Ruby tiende a asignar identificadores de objeto en orden descendente?
Por ejemplo:
obj1 = Object.new
obj2 = Object.new
obj3 = Object.new
p obj1.object_id # => 4806560
p obj2.object_id # => 4806540
p obj3.object_id # => 4806520
¿Por qué están asignados de tal manera, y también por qué hay un paso de 20, más de 1 de cada código dirigido por el intérprete de Ruby, pero una mucho mayor diferencia entre el objeto ID para el código ejecutado por Ruby's Irb?
'object_id' es sólo un número entero que identifica de forma única un objeto, cualquier orden particular que creas que estás viendo es puramente un artefacto de implementación. –
@theTinMan Shaving yaks? No, estoy tratando de satisfacer una curiosidad. – Matty