Зарегистрируйтесь, чтобы продолжить обучение

Переменные Основы Go

В Go переменные объявляются с помощью ключевого слова var:

var name string
name = "Hexlet"

Переменной name задаётся имя и тип (string). Позже в неё можно присвоить значение. Объявление и присваивание можно объединить:

var name string = "Hexlet"

После этого переменной можно присвоить другое значение того же типа:

name = "Code Basics"

Go — строго типизированный язык, поэтому тип переменной фиксирован: если name объявлена как строка, в неё нельзя записать число или логическое значение.

Значения по умолчанию

Если переменную объявить без инициализации, она получит значение по умолчанию. Для строк это пустая строка, для чисел — ноль, для булевых значений — false.

var name string   // ""
var count int     // 0
var active bool   // false

Вывод типа

Если при объявлении переменной сразу указать значение, тип можно не писать — компилятор выведет его сам на основе переданного значения. Это упрощает запись, особенно когда тип очевиден:

var name = "Hexlet"
var count = 10       // int
var active = true    // bool

При этом тип сохраняется за переменной, как если бы он был написан явно. В дальнейшем переменной можно присваивать только значения этого типа. Попытка записать значение другого типа приведёт к ошибке компиляции. Например, если name была строкой, то присваивать ей число нельзя.

Вывод типа работает только при одновременном объявлении и инициализации. Если вы просто пишете var city, без значения, то компилятор не сможет вывести тип и выдаст ошибку. В таких случаях тип нужно указывать явно:

var city            // ошибка: тип не указан
var city string     // правильно

Краткая форма объявления

Внутри функций можно использовать сокращённую форму объявления переменной с помощью оператора :=:

name := "Hexlet"

Эта форма позволяет одновременно создать переменную и присвоить ей значение. Тип по-прежнему выводится автоматически. Такой синтаксис упрощает запись и активно используется в Go-коде. Важно помнить, что := работает только внутри функций. Вне функции можно использовать только var.

С помощью := можно объявлять несколько переменных сразу:

name, course := "Hexlet", "Go"

При этом типы обеих переменных будут выведены по значениям. Такой способ часто используется при обработке нескольких значений, например при возврате значений из функции.

Особенности

  • Все переменные должны использоваться — иначе ошибка компиляции.
  • Имя переменной нельзя использовать до её объявления.

Дополнительные материалы

  1. The Go Programming Language Specification - Variables
  2. Effective Go - Variables

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff