РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
902 of 1593 menu

Видимость на уровне пакета

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

Идентификаторы уровня пакета могут быть экспортируемыми (с заглавной буквы) или неэкспортируемыми (со строчной буквы). Экспортируемые идентификаторы доступны за пределами пакета при импорте, а неэкспортируемые — только внутри пакета.

Синтаксис объявления на уровне пакета

package main var packageVar int // переменная уровня пакета const packageConst = 100 // константа уровня пакета type PackageType struct {} // тип уровня пакета func packageFunc() {} // функция уровня пакета

Пример

Объявим переменную уровня пакета и используем ее в функции main:

package main import "fmt" var counter int = 0 func increment() { counter++ } func main() { fmt.Println(counter) // 0 increment() fmt.Println(counter) // 1 }

Результат выполнения кода:

0 1

Пример

Объявим константу и тип уровня пакета. Константа будет доступна во всех функциях пакета, а тип можно использовать для создания переменных:

package main import "fmt" const version = "v1.0.0" type User struct { Name string Age int } func main() { fmt.Println("Version:", version) u := User{Name: "Alice", Age: 30} fmt.Printf("User: %+v\n", u) }

Результат выполнения кода:

"Version: v1.0.0" "User: {Name:Alice Age:30}"

Пример

Идентификаторы уровня пакета могут быть использованы в разных файлах одного пакета. Например, переменная sharedVar объявлена в файле a.go и используется в файле b.go:

// a.go package main var sharedVar string = "Hello from package scope"
// b.go package main import "fmt" func main() { fmt.Println(sharedVar) }

Результат выполнения кода:

"Hello from package scope"

Смотрите также

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить