В чём разница между командами `go run` и `go build`?

Ответ

Обе команды компилируют исходный код, но служат для разных целей.

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, распространение