Что такое unsafe.Offsetof?

Middle
268 просмотров
AFK Offer AI

unsafe.Offsetof(s.field) возвращает смещение поля от начала структуры в байтах. Учитывает padding (выравнивание). Например, struct {a bool; b int64} — Offsetof(s.b) будет 8, а не 1, потому что int64 выравнивается по 8 байтам и между a и b будет 7 байт padding. Вычисляется в compile time. Используется в низкоуровневом коде: atomic операции на поле структуры, сериализация, взаимодействие с C. Помогает понять реальный layout структуры в памяти.

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

Что такое goroutine leak в production?