Sobes.tech
Back to questions
Junior — Middle
84

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

Companies where asked
ГазпромбанкГазпромбанк

Answer from AI

sobes.tech AI

В Go область видимости переменной определяется её именем и местом объявления. Чтобы объявить переменную с ограниченной областью видимости внутри класса (структуры) или модуля (пакета), используют следующие подходы:

  • Внутри функции или метода: переменная объявляется с помощью var или короткого объявления := и видна только внутри этой функции или метода.

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

Пример:

package mypackage

var packageVar = 10 // видна только внутри пакета mypackage

func myFunc() {
    var localVar = 5 // видна только внутри myFunc
    _ = localVar
}

// Экспортируемая переменная
var ExportedVar = 20 // доступна из других пакетов

Таким образом, чтобы ограничить область видимости переменной внутри модуля, нужно использовать имена с маленькой буквы и объявлять переменные вне функций, но внутри пакета. Для ограниченной видимости внутри класса (структуры) обычно используют не переменные, а поля структуры, где видимость определяется также регистром первой буквы.