Первый запуск и инструменты Go

Установка Go и первая программа: go run

Содержание курса

go run: запуск программы и чтение ошибок компилятора

Находясь в папке с main.go, выполните:

go run main.go

Команда компилирует файл во временный бинарник и тут же запускает его — никакого промежуточного файла в папке не появляется. Если каркас написан верно, терминал напечатает:

Hello, World!

Теперь намеренно сломайте программу — удалите строку import "fmt" и снова запустите go run main.go. Вместо приветствия увидите что-то вроде:

./main.go:6:2: undefined: fmt

Ошибки компилятора содержат имя файла, номер строки, столбец и описание проблемы. Главное: это сообщение появляется до запуска программы. fmt.Println не успевает выполниться — компилятор прерывает процесс раньше, и строка Hello, World! не выводится вообще.

Попробуйте второй вариант поломки — удалите закрывающую фигурную скобку функции main. Ошибка будет другой по тексту, но компилятор снова укажет место рядом с проблемой. Номер строки — хорошая отправная точка, хотя реальная причина иногда находится строкой выше, например у незакрытой скобки.

Итак, два сигнала выглядят по-разному. Диагностика компилятора имеет формат файл:строка:столбец: описание и появляется сразу, до того как программа начала работать. Вывод самой программы — то, что печатает fmt.Println — появляется только после успешной компиляции. Если компилятор нашёл ошибку, вывода программы не будет вовсе.

Оговорка для точности: когда программа уже запущена, она тоже может сообщать об ошибках — через stderr или код завершения. Но это происходит во время выполнения, а не на этапе компиляции. На текущем этапе достаточно различать два момента: ошибка до запуска (компилятор) и текст на экране после успешного запуска (программа).