Урок 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

Первая программа

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 не прощает лишнего. Подключим пакет и забудем им воспользоваться:

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 — сколько часов в году.

Решение
Go
package main

import "fmt"

func main() {
	fmt.Println("Анна")
	fmt.Println(365 * 24)
}
Результат
Анна
8760

Имя стоит в кавычках, поэтому выводится как текст. Выражение без кавычек Go сначала вычисляет.

Мини-тест: проверьте себя

Закрепите урок: несколько вопросов, разбор ответов — в конце.

  1. Что делает компилятор Go?

  2. С какой функции начинается выполнение программы на Go?

  3. В программе написано import "os", но пакет os нигде не используется. Что будет?

  4. Для чего Go используют чаще всего?