CGO — механизм, позволяющий вызывать C-код из Go и наоборот. Включается автоматически, когда в Go-файле есть import "C" и комментарии с C-кодом над ним. CGO нужно для работы с C-библиотеками: SQLite (go-sqlite3), графика, криптография, научные вычисления. Но у него серьёзные минусы: ломает кросс-компиляцию, замедляет сборку, горутины на C-вызовах привязываются к OS-потоку. Поэтому Go-сообщество старается избегать CGO и пишет чистые Go-реализации. CGO_ENABLED=0 — часто в Dockerfile.
Что такое CGO и когда оно нужно?
Senior
346 просмотровAFK Offer AI
Как тестировать retry logic?