← Все этапы
01 · ОСНОВЫ GOУрок 01 из 3320 мин

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

Разбираемся, из чего состоит программа и как исходный код запускается.

Подготовьте папку и запустите файл

Установите Go заранее и проверьте, что терминал его находит командой go version. Создайте папку hello-go, откройте её в редакторе и внутри создайте файл main.go. Перейдите в эту папку в терминале. Сохраните код целиком:

package main

import "fmt"

func main() {
	city := "Казань"
	fmt.Println("Привет,", city)
}

Запустите файл командой go run main.go. Вы увидите строку Привет, Казань. Команда go run получает имя файла относительно текущей папки, поэтому запуск из каталога-родителя без пути hello-go/main.go закончится ошибкой о ненайденном файле.

Разберите структуру

Каждый файл Go объявляет пакет. package main означает, что исходник входит в запускаемую программу. В небольшом примере пакет состоит только из одного файла; позднее один пакет может включать несколько файлов одной папки. Файлы одного пакета компилируются вместе и объявляют одинаковое имя пакета.

Строка import "fmt" подключает стандартный пакет fmt, который содержит функции форматированного ввода и вывода. Он входит в установку Go, скачивать его не нужно. Пакет указан перед вызовом: fmt.Println вызывает функцию Println из fmt. Такой способ показывает источник функции.

Объявление func main() задаёт специальную функцию, с которой начинается запуск программы main. После имени стоят круглые скобки для списка параметров; здесь параметров нет. Фигурные скобки ограничивают тело функции. Команды в теле выполняются по порядку, сверху вниз.

Строка city := "Казань" объявляет локальную переменную и одновременно присваивает начальное значение. Компилятор выводит тип string из строкового литерала. Выражение fmt.Println передаёт функции два аргумента: текст-подпись и значение переменной. Println разделяет их пробелом и добавляет перевод строки.

От исходника к программе

Go статически типизирован: компилятор проверяет совместимость типов до запуска. go run main.go компилирует файл во временную программу и сразу её выполняет. go build main.go выполняет сборку и сохраняет запускаемый файл в текущем каталоге, но не запускает его. go version показывает установленную версию инструментов.

Если сообщение говорит, что файл не найден, проверьте путь командой pwd и файлы командой ls (в PowerShell используйте Get-Location и dir). Если компилятор жалуется на неиспользуемое имя, прочитайте переменную в программе или удалите объявление.

Перейдите к самостоятельному упражнению в карточке практики.

Практика

Попробуйте сами

Шаг 1. Создайте каталог meetup и перейдите в него. Шаг 2. Создайте main.go с package main, импортом fmt и функцией main. Шаг 3. Объявите строковые переменные city со значением Казань и topic со значением Знакомство с Go. Шаг 4. Напечатайте строку Привет, Казань и отдельную строку Тема: Знакомство с Go. Шаг 5. Выполните go run main.go из meetup, затем go build main.go.

Проверка результата

Как понять, что получилось

Ожидаемый вывод состоит из двух строк: Привет, Казань и Тема: Знакомство с Go. В main.go есть package main, import fmt и func main. Запуск go run main.go выполнен из папки meetup; go build main.go завершается без ошибки и создаёт исполняемый файл.

Первая программа на Go | Go | WebSchool · Go