0Pricing
Go Academy · Урок

Объявление переменных в Go

var, := и вывод типа

«Объявление переменных в Go» — бесплатный урок Go Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Go Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Go Academy содержит 4 уроков всего.

Что такое переменная

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

  • В Go используется статическая типизация — типы не могут изменяться во время выполнения
  • Если переменной явно не присвоено значение, она всегда получает стандартное нулевое значение
  • Понятные имена важны: Go предпочитает короткие и ясные имена длинным

Объявление var

Ключевое слово var явно объявляет одну или несколько переменных:

package main

func main() {
    var name string
    var age  int
    var pi   float64 = 3.14
    _ = name
    _ = age
    _ = pi
}

Краткое объявление переменной :=

Внутри функций можно использовать := для краткого объявления и присваивания за один шаг.

  • Тип выводится из правой части
  • := доступен только внутри тела функции
  • Как минимум одна переменная слева должна быть новой
package main

func main() {
    city := "Ankara"   // string inferred
    count := 42         // int inferred
    temp := 36.6        // float64 inferred
    _ = city
    _ = count
    _ = temp
}

Нулевые значения

Go автоматически инициализирует каждую объявленную переменную её нулевым значением:

  • int, float64 → 0
  • string → "" (пустая строка)
  • bool → false
  • Указатели, срезы, отображения и каналы → nil

Нулевые значения устраняют распространённые в C/C++ ошибки, связанные с неинициализированными переменными.

Объявление нескольких переменных

Объявляйте и присваивайте значения нескольким переменным одновременно, используя блочную или кортежную форму:

package main

var (
    host = "localhost"
    port = 8080
    debug = false
)

func main() {
    x, y := 10, 20
    _ = x
    _ = y
}

Правила вывода типа

При использовании := Go выводит тип из литерала:

  • Целочисленные литералы → int
  • Литералы с плавающей точкой → float64
  • Строковые литералы → string
  • Комплексные литералы → complex128

Если нужен определённый тип, например int32, используйте явное объявление var или преобразование.

Переменные уровня пакета и уровня функции

Переменные могут находиться на уровне пакета (быть глобальными для пакета) или на уровне функции (быть локальными для функции):

  • Уровень пакета: используйте var — переменная доступна из любой части пакета
  • Уровень функции: используйте := или var — переменная видна только внутри функции
  • Отдавайте предпочтение переменным уровня функции, чтобы состояние оставалось локальным

Пустой идентификатор _

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

package main

func divide(a, b int) (int, int) {
    return a / b, a % b
}

func main() {
    quotient, _ := divide(10, 3) // discard remainder
    _ = quotient
}

Скрытие переменных

Скрытие происходит, когда во вложенной области видимости объявляется переменная с тем же именем, что и переменная во внешней области видимости:

  • Вложенная переменная скрывает внешнюю в пределах своей области видимости
  • Это может привести к трудноуловимым ошибкам — используйте такой приём осознанно
  • Используйте go vet и анализаторы, такие как staticcheck, чтобы обнаруживать случайное скрытие переменных

Распространённые ошибки при использовании :=

Остерегайтесь следующих подводных камней :=:

  • Использование := на уровне пакета → ошибка компиляции
  • Все переменные слева уже существуют → вместо этого используйте =
  • Случайное скрытие внешней переменной ошибки в блоках if-err

Если сомневаетесь, используйте явное объявление var для ясности.

Быстрая проверка

Какой из следующих вариантов является правильным синтаксисом краткого объявления переменной в Go?

Повторение: объявление переменных

Теперь Вы знаете, как объявлять переменные в Go:

  • var name type — явное объявление с нулевым значением
  • var name = value — объявление var с выводом типа
  • name := value — краткое объявление внутри функций
  • Нулевые значения назначаются автоматически — неинициализированного состояния не бывает
  • _ отбрасывает ненужные значения

Далее: встроенные типы Go и их нулевые значения в подробностях.

Задание для практики

Попробуйте сами: объявите переменную уровня пакета appName типа string и переменную уровня функции retries, используя := и присвоив ей значение 3.

Помните: для переменных уровня пакета используется var, а := допустим только внутри тел функций.

Часто задаваемые вопросы

Урок «Объявление переменных в Go» бесплатный?

Да — полный текст урока «Объявление переменных в Go» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Go Academy, подпишись на CoddyKit PRO. Курс Go Academy содержит 4 уроков всего.

Чему я научусь в уроке «Объявление переменных в Go»?

var, := и вывод типа Ты практикуешь Go Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Go Academy?

Предыдущий опыт не требуется. Go Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Объявление переменных в Go»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Go Academy?

Да. Каждый урок Go Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявление переменных в Go
  2. Встроенные типы Go
  3. Константы и iota
  4. Преобразование типов в Go
← Назад к Go Academy