Какие основные паттерны unsafe.Pointer в Go?

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

Шесть легальных паттернов: 1) конвертация *T в *U через unsafe.Pointer, 2) Pointer в uintptr для арифметики (только в одном выражении), 3) reflect.Value.Pointer/UnsafeAddr, 4) syscall передача, 5) преобразование string↔[]byte без копирования, 6) доступ к unexported полям struct. Всё остальное — UB, может сломаться при обновлении Go.

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

Расскажи про false sharing