Zauważyłem, że obiekty mają przypisane ich identyfikatory w sposób sprzeczny z intuicją. Im wcześniej obiekt zostanie utworzony, tym większy będzie jego identyfikator obiektu. Sądziłem, że zostałyby przydzielone w porządku rosnącym, a nie na odwrót.Dlaczego Ruby ma tendencję do przypisywania identyfikatorów obiektów w porządku malejącym?
Na przykład:
obj1 = Object.new
obj2 = Object.new
obj3 = Object.new
p obj1.object_id # => 4806560
p obj2.object_id # => 4806540
p obj3.object_id # => 4806520
Dlaczego są one przypisane w taki sposób, a także dlaczego jest to krok 20 zamiast 1 w kodzie prowadzony przez interpreter Ruby, ale znacznie większą różnicę między obiektem Identyfikatory dla kodu uruchomionego przez irbę Ruby?
'object_id' jest tylko liczbą całkowitą, która jednoznacznie identyfikuje obiekt, każda kolejność, którą uważasz, że widzisz, jest wyłącznie artefaktem implementacji. –
@TinMan golenie jaków? Nie, staram się zaspokoić ciekawość. – Matty