Если у объекта obj есть гарантия, что
uintptr(unsafe.Pointer(&obj))
всегда будет оценивать одно значение независимо от того, когда оно вызывается?
Конечно, Go гарантирует, что если вы возьмете два указателя на один и тот же объект, они всегда будут сравнивать равные. Возможно, возможно, что реализация перемещает объект в память и прозрачно обновляет все указатели на него.
Это интересно, если вы рассматриваете стратегии сбора мусора, такие как Mark-and-Compact. Разрешено ли разработчику использовать такую стратегию сбора мусора?