Tôi nhận thấy rằng các đối tượng có ID được gán theo kiểu phản trực giác. Đối tượng trước đó được tạo, ID đối tượng càng lớn. Tôi đã nghĩ họ sẽ được chỉ định theo thứ tự tăng dần, chứ không phải là cách khác.Tại sao Ruby có xu hướng gán ID đối tượng theo thứ tự giảm dần?
Ví dụ:
obj1 = Object.new
obj2 = Object.new
obj3 = Object.new
p obj1.object_id # => 4806560
p obj2.object_id # => 4806540
p obj3.object_id # => 4806520
Tại sao họ được gán theo cách như vậy và cũng có lý do tại sao lại có một bước là 20, chứ không phải là 1 trong mã chạy bởi trình phiên dịch Ruby, nhưng một sự khác biệt lớn hơn rất nhiều giữa đối tượng ID cho mã chạy bởi irb của Ruby?
'object_id' chỉ là một số nguyên xác định duy nhất một đối tượng, bất kỳ thứ tự cụ thể nào mà bạn nghĩ rằng bạn đang nhìn thấy chỉ là một hiện vật thực hiện. –
@theTinMan Cạo yaks? Không, tôi đang cố thỏa mãn sự tò mò. – Matty