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

Давайте рассмотрим основные элементы синтаксиса языка на примере простой программы:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

Сначала разберём, что здесь происходит, построчно.

  • package main В начале каждого Go-файла объявляется принадлежность к пакету. Для запуска приложения обязательно наличие пакета с именем main.

  • import "fmt" После определения принадлежности к пакету указывается список используемых внешних зависимостей. В нашем случае — мы подключаем пакет форматирования fmt из стандартной библиотеки.

  • func main() Функция main() — это специальная функция, которая автоматически вызывается при старте программы. Функция не принимает никаких аргументов и ничего не возвращает. Она служит точкой входа в приложение — исполнение любой программы начинается именно отсюда.

  • fmt.Println(...) Последняя строка состоит из двух частей: названия пакета (fmt) и имени функции (Println), которая направляет сообщение на стандартное устройство вывода (обычно терминал).

В результате, после компиляции и запуска программы, в терминал будет выведена надпись:

"Hello, World!"

Это небольшой сниппет — но уже в нём видны ключевые особенности синтаксиса Go.

Go унаследовал от C фигурные скобки {} для обозначения блоков кода. На этом сходство заканчивается: синтаксис намеренно упрощён. В управляющих конструкциях — if, for, switch — условие не оборачивается в скобки. Точка с запятой в конце строки не нужна: компилятор расставляет её сам по правилу лексера. Единственный случай, когда точка с запятой пишется вручную — несколько операторов в одной строке, что на практике не приветствуется.

Форматирование кода в Go стандартизировано. Для этого в стандартную поставку языка включён инструмент gofmt, который автоматически приводит код к единому виду: табуляция для отступов, пробелы вокруг операторов, правильные переносы строк. В отличие от большинства языков, в Go нет дискуссий о стиле — есть один общепринятый стандарт. Большинство редакторов и IDE запускают gofmt автоматически при сохранении файла.

Важно понимать: отступы в Go не влияют на выполнение программы. Они нужны исключительно для читаемости — структуру кода определяют фигурные скобки, а не пробелы (в отличие от Python).

В Go всего 25 ключевых слов — это один из самых компактных словарей среди современных языков программирования. Выучить их можно за один вечер:

breakcasechanconstcontinue
defaultdeferelsefallthroughfor
funcgogotoifimport
interfacemappackagerangereturn
selectstructswitchtypevar

Несмотря на лаконичность, язык остаётся выразительным — за счёт продуманного набора конструкций, а не их количества. Горутины, каналы, интерфейсы, обобщённые типы — всё это реализовано без синтаксических излишеств. Именно этот принцип — делать меньше, но делать хорошо — пронизывает весь дизайн Go.


ЗаданиеСложность
1Hello, Go!easy
2Найди и исправь ошибкуeasy