- Установка
- Запуск первой программы
- Компиляция и запуск файлов
- Кроссплатформенность
- Самостоятельная работа
В этом уроке мы установим Go и попробуем запустить первую программу. Вы разберетесь в структуре Go-файлов и узнаете, как они запускаются и компилируются.
Важно не только читать уроки, но и практиковаться — набирать код из урока и запускать его. Если планируете погружаться в работу с Go, советуем запускать код локально. Если хотите просто попробовать, можно воспользоваться онлайн-песочницей The Go Playground.
Установка
Если на вашем компьютере пока не стоит Go, выполните установку по нашей инструкции. Обратите внимание, что надо установить переменную $GOPATH.
После установки нужно убедиться, что все работает. Наберите в терминале go version
и изучите вывод:
go version # Вывод может отличаться, главное — чтобы Go не выдавал ошибок
go version go1.17.5 linux/amd64
Запуск первой программы
Создайте файл hello.go внутри git-репозитория hexlet-go. Добавьте в файл следующий код:
package main
import "fmt"
func main() {
fmt.Println("Hello, Hexlet!")
}
Запустите код на выполнение:
go run hello.go
Hello, Hexlet!
Если вcе правильно, программа выведет на экран строку Hello, Hexlet!
и завершится. Вернемся к коду и на его примере изучим, как устроены Go-файлы:
package main // Начинаем файл с имени пакета, к которому он принадлежит. Пакет main служит точкой входа в программу
import "fmt" // Далее объявляем импорты, а уже после них пишем сам код
func main() {
fmt.Println("Hello, Hexlet!")
}
Компиляция и запуск файлов
Go — это компилируемый язык. Но при этом наш файл hello.go запустился так, будто написан на скриптовом языке. Как это произошло? Дело в том, что запустить программу на Go можно двумя способами:
Первый способ — через команду *go run*, как в примере выше. Эта команда компилирует исполняемый файл, запускает его и удаляет. Этим способом пользуются, когда нужно разово запустить небольшую программу на Go и забыть.
Второй способ — через команду *go build*. Она выполняет компиляцию и создает исполняемый файл в текущей директории:
go build hello.go # Создаем бинарный файл hello.go
В директории с файлом должен появиться новый файл hello. Можно запустить его как обычный исполняемый файл:
./hello # Запускаем исполняемый файл
Hello, Hexlet!
Кроссплатформенность
Исполняемые Go-файлы можно запускать на любом компьютере, потому что для этого не нужен установленный Go.
Также в Go есть команды, с помощью которых можно быстро скомпилировать файлы под разные операционные системы. Чтобы создать исполняемый файл, нужно указать правильные переменные окружения:
go mod init hello # Создаем Go-модуль
GOOS=windows GOARCH=386 go build -o hello_windows.exe # Исполняемый файл для Windows
GOOS=windows GOARCH=amd64 go build -o hello_windows64.exe # Файл для Windows с архитектурой x64
GOOS=linux GOARCH=arm go build -o hello_linux_arm # Файл для Linux на arm
GOOS=darwin GOARCH=arm64 go build -o hello_mac_arm64 # Файл для MacOS на arm с архитектурой x64
Самостоятельная работа
Чтобы лучше усвоить знания из этого урока, повторите на своем компьютере все описанные выше шаги. Создайте файл с кодом и залейте его в репозиторий, который создали в прошлом уроке.
Самостоятельная работа
-
Установите Go на свой компьютер
-
Запустите The Go Playground и попробуйте выполнить внутри код на Go
-
Вычислите в репле значение выражения
32 + 299
-
В проекте hexlet-go создайте файл hello.go и добавьте туда:
package main import "fmt" func main() { fmt.Println("Hello, Hexlet!") }
-
Запустите этот файл командой
go run hello.go
, убедитесь что на экран вывелась строчка Hello, Hexlet! -
С помощью команды
go build
скомпилируйте исполняемый файл, убедитесь, что он запускается выводит на экран приветствие
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.