Что такое weak reference в Go?

Senior
199 просмотров
AFK Offer AI

В Go нет классических weak reference как в Java. До Go 1.24 единственный способ получить "слабую ссылку" — через runtime.SetFinalizer: хранить объект в map, при финализации удалять. Это неуклюже и ненадёжно. В Go 1.24 добавили пакет weak с типом weak.Pointer[T] — настоящая слабая ссылка. Она не предотвращает сборку объекта, а при обращении возвращает nil если объект уже собран. Полезно для кешей: хранишь weak pointer, если объект ещё жив — используешь, если собран — пересоздаёшь.

Следующий вопрос

Что такое panic recovery в middleware?