Зарегистрируйтесь, чтобы продолжить обучение

Запуск первой программы на Go Go: Настройка окружения

Go-environment

В этом уроке мы установим 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

Самостоятельная работа

Чтобы лучше усвоить знания из этого урока, повторите на своем компьютере все описанные выше шаги. Создайте файл с кодом и залейте его в репозиторий, который создали в прошлом уроке.


Самостоятельная работа

  1. Установите Go на свой компьютер

  2. Запустите The Go Playground и попробуйте выполнить внутри код на Go

  3. Вычислите в репле значение выражения 32 + 299

  4. В проекте hexlet-go создайте файл hello.go и добавьте туда:

    package main
    
    import "fmt"
    
    func main() {
        fmt.Println("Hello, Hexlet!")
    }
  5. Запустите этот файл командой go run hello.go, убедитесь что на экран вывелась строчка Hello, Hexlet!

  6. С помощью команды go build скомпилируйте исполняемый файл, убедитесь, что он запускается выводит на экран приветствие


Дополнительные материалы

  1. Что такое компилятор?
  2. Инструкция по установке Go и $GOPATH

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»