Ответ
Обе команды компилируют исходный код, но служат для разных целей.
go run
Компилирует и сразу же запускает программу. Исполняемый файл создается во временной директории и удаляется после завершения работы программы.
- Назначение: Быстрая проверка и отладка кода на этапе разработки.
- Пример:
# Компилирует и запускает main.go go run main.go
go build
Только компилирует программу и сохраняет исполняемый файл (бинарник) в текущей директории (или по указанному пути). Для запуска программы этот файл нужно выполнить отдельно.
- Назначение: Подготовка приложения к развертыванию (deploy), создание готового продукта.
-
Пример:
# Компилирует main.go и создает исполняемый файл 'my-app' go build -o my-app main.go # Запускаем созданный файл ./my-app
Сравнительная таблица
Характеристика | go run |
go build |
---|---|---|
Действие | Компиляция + Запуск | Только компиляция |
Артефакт | Временный, удаляется после выполнения | Постоянный исполняемый файл |
Сценарий | Разработка, тесты, скрипты | Сборка для production, распространение |