Введение в Go: с чего начать в 2025 году
Go (или Golang) — это современный компилируемый язык программирования, разработанный компанией Google в 2009 году. К 2025 году Go прочно занял нишу высокопроизводительных серверных приложений, микросервисов, DevOps-инструментов и облачных решений. Его главные преимущества — простота синтаксиса, высокая скорость выполнения и встроенная поддержка конкурентности. Если вы ищете язык, который позволит быстро писать надёжные программы, Go — отличный выбор. В этой статье мы разберём, с чего начать изучение Go в 2025 году, и приведём практические примеры.
Почему Go стоит изучать в 2025 году?
Go продолжает набирать популярность благодаря нескольким факторам:
- Простота и читаемость кода — синтаксис Go минималистичен и легко воспринимается даже новичками.
- Высокая производительность — компилируется в машинный код, работает почти так же быстро, как C/C++.
- Встроенная конкурентность — горутины (goroutines) и каналы (channels) позволяют легко писать многопоточные программы.
- Богатая стандартная библиотека — включает HTTP-сервер, работу с JSON, шифрование и многое другое.
- Активное сообщество и поддержка — Go используется в Docker, Kubernetes, Prometheus, Terraform и других популярных проектах.
В 2025 году Go особенно востребован в облачной разработке, микросервисной архитектуре и инструментах автоматизации. Начать изучение можно с нуля, имея базовые знания программирования.
Установка Go: пошаговая инструкция
Первый шаг — установить компилятор Go на ваш компьютер. Процесс одинаков для Windows, macOS и Linux.
- Перейдите на официальный сайт go.dev/dl.
- Скачайте установочный пакет для вашей операционной системы (последняя версия на 2025 год — Go 1.22 или новее).
- Запустите установщик и следуйте инструкциям. По умолчанию Go устанавливается в
C:\Go(Windows) или/usr/local/go(Linux/macOS). - Проверьте установку, открыв терминал и выполнив команду:
go version
Если вы видите версию Go (например, go version go1.22.0 linux/amd64), установка прошла успешно.
Также рекомендуется настроить переменную окружения GOPATH (обычно ~/go) и добавить $GOPATH/bin в PATH. Современные версии Go делают это автоматически.
Ваша первая программа на Go
Создайте папку для проекта, например hello-go, и внутри неё файл main.go. Откройте его в любом текстовом редакторе (рекомендую VS Code с расширением для Go). Напишите следующий код:
package main
import "fmt"
func main() {
fmt.Println("Привет, мир Go!")
}
Разберём структуру программы:
package main— каждый файл Go принадлежит пакету.main— специальный пакет для исполняемых программ.import "fmt"— подключаем стандартный пакет для форматированного ввода/вывода.func main()— точка входа в программу. Выполняется при запуске.fmt.Println(...)— выводит строку в консоль.
Теперь запустите программу из терминала, находясь в папке проекта:
go run main.go
Вы должны увидеть:
Привет, мир Go!
Поздравляю, вы написали и выполнили свою первую программу на Go!
Основы синтаксиса Go для начинающих
Рассмотрим ключевые элементы языка, которые понадобятся вам в первых проектах.
Переменные и типы данных
Go — статически типизированный язык. Тип переменной указывается явно или выводится автоматически:
var name string = "Анна"
var age int = 25
var height float64 = 1.68
isStudent := true // короткая запись с := (тип выводится автоматически)
Основные типы: string, int, float64, bool. Также есть byte, rune, массивы, срезы (slice) и структуры.
Условные операторы и циклы
Условный оператор if не требует круглых скобок:
if age >= 18 {
fmt.Println("Взрослый")
} else {
fmt.Println("Несовершеннолетний")
}
В Go есть только один цикл — for, но он может использоваться в разных формах:
// Классический цикл
for i := 0; i < 5; i++ {
fmt.Println(i)
}
// Цикл как while
count := 0
for count < 3 {
fmt.Println(count)
count++
}
// Бесконечный цикл
for {
// выход по break
break
}
Функции
Функции объявляются с помощью ключевого слова func. Можно возвращать несколько значений:
func add(a int, b int) int {
return a + b
}
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf("деление на ноль")
}
return a / b, nil
}
Обратите внимание на обработку ошибок: Go использует явное возвращение ошибки как второго значения.
Срезы (slice) и карты (map)
Срезы — это динамические массивы:
var fruits []string
fruits = append(fruits, "яблоко", "банан", "апельсин")
fmt.Println(fruits[0]) // яблоко
Карты — это ассоциативные массивы (ключ-значение):