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

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

unsafe.Alignof(x) возвращает alignment requirement типа — по скольки байтам он должен быть выровнен в памяти. int64 → 8, int32 → 4, bool → 1, string → 8 (на 64-bit). Структура выравнивается по самому большому полю. Зная alignment, можно оптимизировать структуры: struct {a bool; b int64; c bool} занимает 24 байта (padding), а struct {b int64; a bool; c bool} — только 16. Правило: сортируй поля от большего к меньшему по размеру. unsafe.Alignof вычисляется в compile time.

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

HAVING без GROUP BY?