🟡 Средний · 2 очк. Разное / продвинутое
Что такое go:build тег?
A Версия Go
B Условие компиляции файла
C Тег для тестов
D Комментарий
Объяснение вопроса

Директива //go:build задаёт условия компиляции: файл попадает в сборку только если выражение истинно для текущей ОС, архитектуры и т.д.

Синтаксис

//go:build linux
//go:build darwin && amd64
//go:build !windows
// +build linux   // старый формат (всё ещё работает)

Строка с //go:build должна быть в начале файла (до package), пустые строки и другие комментарии между build и package допустимы.

Зачем нужен

  • Платформо-специфичный код (системные вызовы, пути)
  • Отключение кода для тестов: //go:build integration и go test -tags=integration
  • Один пакет - несколько файлов с разными условиями

Условная компиляция выполняется до сборки - исключённый файл даже не компилируется.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.