Урок 1 из 8 · 15 мин · обновлено
Что такое Go: первая программа
Где используют Go, чем компилируемый язык отличается от интерпретируемого, как запустить первую программу в браузере и на своём компьютере.
Где используют Go
Go (его ещё называют Golang) создали в Google: работу начали в 2007 году, а в 2009 язык стал открытым. Авторы хотели язык для больших сетевых сервисов: чтобы он был простым, как скриптовые языки, и быстрым, как C.
Сегодня на Go пишут:
- серверную часть сервисов — обработку заказов, платежей, поиска, личных кабинетов;
- API и микросервисы — небольшие программы, которые обмениваются данными по сети;
- инфраструктуру — Docker, Kubernetes и Terraform написаны на Go;
- утилиты командной строки — программы, которые запускают в терминале.
В России Go используют Ozon, Авито, Яндекс, VK, банки и маркетплейсы. Вакансий «Go-разработчик» много именно в бэкенде.
Компилятор: проверка до запуска
Go — компилируемый язык. Прежде чем программа заработает, компилятор проверяет весь код и собирает из него исполняемый файл. Если в коде ошибка, программа не запустится вовсе, и вы узнаете о проблеме сразу, а не когда до неё дойдёт пользователь.
Готовую программу можно отправить на сервер одним файлом: ни Go, ни исходный код там не нужны.
Где запускать код
- В браузере. Откройте официальную песочницу go.dev/play: вставляете код, нажимаете Run и видите результат. Для этого курса этого достаточно.
- На своём компьютере. Скачайте установщик с официального сайта go.dev, а код пишите в VS Code с расширением Go — оно подсвечивает ошибки и форматирует код. Популярная платная альтернатива — GoLand.
На компьютере программу запускают командой в терминале:
go run main.go
Первая программа
package main
import "fmt"
func main() {
fmt.Println("Привет, мир!")
fmt.Println(2 + 3)
fmt.Println("2 + 3")
}
Результат:
Привет, мир!
5
2 + 3
Разберём по строкам:
package main— файл относится к пакетуmain. Это пакет, из которого собирается запускаемая программа;import "fmt"— подключаем стандартный пакетfmtдля вывода текста;func main()— функция, с которой начинается выполнение;fmt.Println()— выводит значения и переводит строку. Текст в кавычках выводится как есть, а выражение без кавычек Go сначала вычисляет.
Отступы в Go делают табуляцией, а фигурные скобки обязательны. Расставлять отступы вручную не нужно: команда go fmt или редактор при сохранении приведут код к единому стилю.
Строгий компилятор
Go не прощает лишнего. Подключим пакет и забудем им воспользоваться:
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("Привет!")
}
./main.go:5:2: "os" imported and not used
Компилятор сообщает файл, строку, позицию и причину: пакет os подключён, но не используется. Программа не соберётся, пока вы не уберёте лишний импорт. Поначалу это раздражает, зато в больших проектах не копится мусор.
Попробуйте сами. Откройте go.dev/play и напишите программу, которая выводит в две строки ваше имя и результат выражения 365 * 24 — сколько часов в году.
Решение
package main
import "fmt"
func main() {
fmt.Println("Анна")
fmt.Println(365 * 24)
}
Анна
8760
Имя стоит в кавычках, поэтому выводится как текст. Выражение без кавычек Go сначала вычисляет.
Мини-тест: проверьте себя
Закрепите урок: несколько вопросов, разбор ответов — в конце.
-
Что делает компилятор Go?
Компилятор сначала проверяет программу целиком. Если ошибок нет, он собирает исполняемый файл, который потом запускается без исходного кода.
-
С какой функции начинается выполнение программы на Go?
Выполнение начинается с функции main в пакете main. Без неё программа не запустится.
-
В программе написано import "os", но пакет os нигде не используется. Что будет?
Неиспользуемый импорт в Go — ошибка компиляции: "os" imported and not used. Так в коде не копится мусор.
-
Для чего Go используют чаще всего?
Go создавали для больших сетевых сервисов. На нём пишут бэкенд, API, микросервисы и инструменты вроде Docker и Kubernetes.