Установка 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 или код завершения. Но это происходит во время выполнения, а не на этапе компиляции. На текущем этапе достаточно различать два момента: ошибка до запуска (компилятор) и текст на экране после успешного запуска (программа).
