«Черная магия» unsafe в Go

Доклад охватывает различные аспекты безопасного и небезопасного использования пакета unsafe в Go, при помощи которого можно ускорять код в десятки раз. Вы узнаете, как можно создавать срезы без дорогостоящей инициализации, научитесь избавляться от bound checks, конвертировать строки в срезы и обратно без лишних копирований и аллокаций памяти. Сравним пакет unsafe в Go с указателями из С/С++ и посмотрим на паттерны С++, которые в некоторых ситуациях можно применять при программировании на Go.

«Черную магию» оставлю под конец доклада, чтобы с ее помощью посмотреть, как можно «проезжаться» по памяти для анализа сложных структур данных, модифицировать иммутабельные строки в Go и получать доступ к приватным полям структур.