← Все этапы
01 · ОСНОВЫ GOУрок 05 из 3330 мин

Команды Go в терминале

Используем запуск, сборку, тестирование и форматирование.

Команда go покрывает повседневный цикл

Команды запускают из терминала. Сначала перейдите в папку проекта: pwd показывает путь (в PowerShell — Get-Location), ls показывает файлы (в PowerShell — dir). Создайте main.go и сохраните полный пример:

package main

import "fmt"

func main() {
	fmt.Println("Файл готов к запуску")
}

go version показывает установленную версию компилятора и инструментов. go run main.go компилирует указанный файл во временный исполняемый файл и запускает его. go build main.go создаёт исполняемый файл в текущем каталоге, но не запускает. На Windows к имени файла обычно добавляется расширение .exe.

Работайте с пакетом и модулем

Для нескольких файлов проекта удобнее создать go.mod в корне командой go mod init example.com/console-demo. После этого go run . запускает пакет текущего каталога, а go build . собирает пакет. Точка здесь означает текущую папку. Не перепутайте запуск всей папки с запуском одного файла: go run main.go берёт конкретный файл.

go mod tidy сверяет импорты с зависимостями проекта и приводит файлы модуля в порядок. Если появились внешние пакеты, Go может скачать их; для примера только с fmt внешних зависимостей нет.

Форматирование, тесты и сборка с проверкой гонок

Форматирование исходника в Go единообразно. gofmt форматирует названный файл, а go fmt ./... применяет gofmt к пакетам текущего модуля и подкаталогам. Обычно форматирование запускают перед просмотром изменений кода; оно меняет отступы и пробелы, не поведение.

go test ./... запускает тесты пакетов в модуле. Даже если тестов пока нет, команда компилирует пакеты и сообщает об отсутствии тестов. Суффикс ./... означает все пакеты в текущем модуле и вложенных каталогах.

Флаг -race включает детектор гонок памяти при сборке и запуске поддерживаемой платформой программы, например go run -race . или go test -race ./.... Он помогает находить конкурентный доступ без синхронизации, но не доказывает отсутствие всех ошибок параллельного кода и не поддерживается каждой комбинацией ОС и архитектуры.

Перейдите к самостоятельному упражнению в карточке практики.

Практика

Попробуйте сами

Шаг 1. Создайте каталог terminal-practice, перейдите в него и выполните go mod init example.com/terminal-practice. Шаг 2. Добавьте main.go, который печатает две собственные строки. Шаг 3. Запустите go fmt ./... и проверьте формат файла. Шаг 4. Выполните go test ./... и прочитайте результат, если тестов ещё нет. Шаг 5. Запустите go run ., затем go build . и найдите созданный исполняемый файл.

Проверка результата

Как понять, что получилось

В корне проекта есть go.mod с путём example.com/terminal-practice. go fmt ./... завершился и отформатировал пакет. go test ./... завершился успешно, даже если Go сообщил, что тестовых файлов нет. go run . вывел две строки. go build . создал исполняемый файл и не запускал его. Команды выполнены из terminal-practice.

Команды Go в терминале | Go | WebSchool · Go