Установка Go и первый запуск
Go (или Golang) - это современный язык программирования, созданный в Google. Он простой, быстрый и отлично подходит для создания веб-сервисов.
Установка Go
Выбери свою ОС:
# Через Homebrew (рекомендуется)
brew install go
# Или скачайте .pkg с официального сайта: https://go.dev/dl/
# Из репозитория Ubuntu/Debian - просто, но версия обычно отстаёт
# на год-полтора. Для учёбы сгодится, для работы лучше архивом.
sudo apt update
sudo apt install golang-go
# Архивом с официального сайта - всегда актуальная версия.
# Номер посмотри на https://go.dev/dl/ (первая в списке) и подставь:
GO_VERSION=1.XX.X
wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go # старую версию надо снести, а не распаковать поверх
sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
Версия здесь не написана намеренно: Go выпускает релиз раз в полгода, и любое конкретное число в туториале протухнет раньше, чем ты его прочитаешь. Заодно
rm -rf /usr/local/goперед распаковкой - официальная инструкция, без него файлы двух версий смешиваются иgo versionпоказывает неправду.
- Скачайте установщик с официального сайта
- Запустите
.msiфайл - Следуйте инструкциям установщика
Если ты пишешь backend «как на сервере» - поставь WSL2 + Ubuntu и используй команды из вкладки Linux.
go version
Вы должны увидеть что-то вроде: go version go1.25.0 darwin/arm64 - конкретные
числа будут свои, важно, что команда вообще отвечает и не пишет command not found.
Настройка окружения
Настраивать почти нечего: с версии 1.16 Go работает через модули, и проект живёт в любой папке, где тебе удобно. Никакого обязательного каталога нет.
GOPATH при этом никуда не делся, но занимается другим: в нём лежит кеш
скачанных зависимостей и бинарники, которые ты ставишь через go install.
По умолчанию это ~/go, и трогать его не нужно.
Единственное, что стоит добавить в ~/.bashrc или ~/.zshrc - путь к этим
бинарникам, иначе установленные утилиты не запустятся по имени:
export PATH=$PATH:$(go env GOPATH)/bin
Подробнее про GOPATH, GOROOT и go env - в уроке
Рабочее окружение.
Сейчас это не нужно и мешает: внутри GOPATH некоторые версии Go до сих пор
ведут себя иначе. Создавай проект где угодно и начинай с go mod init.
Первая программа
Создайте файл hello.go:
package main
import "fmt"
func main() {
fmt.Println("Привет, мир!")
}
<CodeBlock language="go" title="hello.go" showRun={true}
package main
import "fmt"
func main() { fmt.Println("Привет, мир!") }
Запуск программы
У вас есть два способа запустить программу:
go run
Компилирует и сразу запускает программу:
go run hello.go
# Вывод: Привет, мир!
go build
Компилирует программу в исполняемый файл:
go build hello.go
./hello
# Вывод: Привет, мир!
<ComparisonTable data={{ headers: ["Команда", "Что делает", "Когда использовать"], rows: [ ["go run", "Компилирует и запускает", "Разработка и тестирование"], ["go build", "Создает исполняемый файл", "Финальная сборка"], ] }} />
Структура Go программы
Каждая Go программа состоит из:
- package main - точка входа программы
- import - подключение библиотек
- func main() - главная функция
Практическое задание
Модифицируйте программу, чтобы она:
- Спрашивала имя пользователя
- Выводила персональное приветствие
Подсказка
Используйте пакет fmt для чтения ввода:
var name string
fmt.Print("Введите ваше имя: ")
fmt.Scan(&name) // & означает «адрес переменной» - указатели разберём позже, пока просто используй этот синтаксис
fmt.Println("Привет,", name)
Итоги
Теперь вы умеете:
- ✅ Устанавливать Go
- ✅ Запускать программы с
go run - ✅ Создавать исполняемые файлы с
go build - ✅ Понимать базовую структуру Go программы
Готовы двигаться дальше? В следующем уроке мы изучим переменные и типы данных!
Типичная ошибка
Писать проект в $GOPATH/src «по старой памяти». В мире модулей это не обязательно - создавай проект в любой папке и начинай с go mod init.
Мини-практика
Создай папку hello, выполни go mod init hello, напиши main.go с fmt.Println("Hello, BackendStart!"), затем запусти go run ..