Первая программа
Hello, World!
Давайте рассмотрим основные элементы синтаксиса языка на примере простой программы:
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 ключевых слов — это один из самых компактных словарей среди современных языков программирования. Выучить их можно за один вечер:
break | case | chan | const | continue |
default | defer | else | fallthrough | for |
func | go | goto | if | import |
interface | map | package | range | return |
select | struct | switch | type | var |
Несмотря на лаконичность, язык остаётся выразительным — за счёт продуманного набора конструкций, а не их количества. Горутины, каналы, интерфейсы, обобщённые типы — всё это реализовано без синтаксических излишеств. Именно этот принцип — делать меньше, но делать хорошо — пронизывает весь дизайн Go.
Упражнения
| № | Задание | Сложность |
|---|---|---|
| 1 | Hello, Go! | easy |
| 2 | Найди и исправь ошибку | easy |