Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Локальні та Глобальні Області Видимості | Функції
Вступ до Golang

bookЛокальні та Глобальні Області Видимості

На цьому етапі важливо розглянути поняття областей видимості, щоб зрозуміти, де саме можна отримати доступ до певних змінних (або констант), а де — ні.

Область видимості змінної або константи визначає, де її можна використовувати.

Коли змінна або константа оголошується поза будь-яким блоком коду, вона стає доступною у всій програмі, отримуючи статус глобальної області видимості. У наступному фрагменті коду константа pi є прикладом такої глобальної області видимості:

index.go

index.go

copy
12345678
package main import "fmt" const pi float32 = 3.1415 func main() { fmt.Println(pi) }

Навпаки, коли змінна або константа оголошується всередині блоку коду, вона залишається доступною лише в межах цього конкретного блоку коду та будь-яких вкладених блоків, якщо такі є.

Наведена нижче ілюстрація окреслює відмінності між глобальною та локальною областями видимості:

Наступний код демонструє області, де доступ до змінних дозволений, а також місця, де можуть виникати помилки:

index.go

index.go

copy
12345678910111213141516171819202122232425262728
package main import "fmt" func main() { var value_1 int = 1 // Condition 1 if(true) { var value_2 int = 2 // Condition 2 if (true) { var value_3 int = 3 fmt.Println("In Condition 2:", value_1) fmt.Println("In Condition 2:", value_2) fmt.Println("In Condition 2:", value_3) } fmt.Println("In Condition 1:", value_1) fmt.Println("In Condition 1:", value_2) fmt.Println("In Condition 1:", value_3) // Error here } fmt.Println("In Main:", value_1) fmt.Println("In Main:", value_2) // Error here fmt.Println("In Main:", value_3) // Error here }

Змінна value_1 залишається доступною протягом усього блоку коду main(), включаючи вкладені блоки, такі як Умова 1 та Умова 2. Вона також доступна у межах Умови 1 та її вкладеної Умови 2.

Однак спроба безпосередньо звернутися до неї поза межами блоку main() призведе до помилки. Аналогічно, змінна value_2, оголошена у межах Умови 2, доступна лише у цьому конкретному блоці коду.

Важливо враховувати області видимості у контексті функцій. Коли ми оголошуємо змінну або константу всередині функції, вона залишається обмеженою цією функцією і недоступна в інших функціях, включаючи main().

Note

main() виконує роль автоматично виконуваної функції під час запуску програми.

index.go

index.go

copy
12345678
func myFunc() { var number int = 7 fmt.Println(number) // Accessible here } func main() { fmt.Println(number) // Not accessible here }

Ще один важливий момент: не можна оголошувати дві або більше змінних з однаковим ім'ям у межах однієї області видимості або у перетинаючихся областях видимості.

index.go

index.go

copy
1234567891011
func myFunc1() { var number int = 7 var number int = 9 // Error here } func myFunc2() { var number int = 7 if(2 > 1) { var number int = 9 // Error here } }

Однак можливо оголошувати змінні з однаковими іменами в різних областях видимості:

index.go

index.go

copy
1234567891011121314151617
package main import "fmt" func myFunc1() { var number int = 7 fmt.Println("In Func 1:", number) } func myFunc2() { var number int = 9 fmt.Println("In Func 2:", number) } func main() { myFunc1() myFunc2() }
question mark

У якій області видимості слід розмістити var value int = 6, щоб уникнути помилок?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 1.96

bookЛокальні та Глобальні Області Видимості

Свайпніть щоб показати меню

На цьому етапі важливо розглянути поняття областей видимості, щоб зрозуміти, де саме можна отримати доступ до певних змінних (або констант), а де — ні.

Область видимості змінної або константи визначає, де її можна використовувати.

Коли змінна або константа оголошується поза будь-яким блоком коду, вона стає доступною у всій програмі, отримуючи статус глобальної області видимості. У наступному фрагменті коду константа pi є прикладом такої глобальної області видимості:

index.go

index.go

copy
12345678
package main import "fmt" const pi float32 = 3.1415 func main() { fmt.Println(pi) }

Навпаки, коли змінна або константа оголошується всередині блоку коду, вона залишається доступною лише в межах цього конкретного блоку коду та будь-яких вкладених блоків, якщо такі є.

Наведена нижче ілюстрація окреслює відмінності між глобальною та локальною областями видимості:

Наступний код демонструє області, де доступ до змінних дозволений, а також місця, де можуть виникати помилки:

index.go

index.go

copy
12345678910111213141516171819202122232425262728
package main import "fmt" func main() { var value_1 int = 1 // Condition 1 if(true) { var value_2 int = 2 // Condition 2 if (true) { var value_3 int = 3 fmt.Println("In Condition 2:", value_1) fmt.Println("In Condition 2:", value_2) fmt.Println("In Condition 2:", value_3) } fmt.Println("In Condition 1:", value_1) fmt.Println("In Condition 1:", value_2) fmt.Println("In Condition 1:", value_3) // Error here } fmt.Println("In Main:", value_1) fmt.Println("In Main:", value_2) // Error here fmt.Println("In Main:", value_3) // Error here }

Змінна value_1 залишається доступною протягом усього блоку коду main(), включаючи вкладені блоки, такі як Умова 1 та Умова 2. Вона також доступна у межах Умови 1 та її вкладеної Умови 2.

Однак спроба безпосередньо звернутися до неї поза межами блоку main() призведе до помилки. Аналогічно, змінна value_2, оголошена у межах Умови 2, доступна лише у цьому конкретному блоці коду.

Важливо враховувати області видимості у контексті функцій. Коли ми оголошуємо змінну або константу всередині функції, вона залишається обмеженою цією функцією і недоступна в інших функціях, включаючи main().

Note

main() виконує роль автоматично виконуваної функції під час запуску програми.

index.go

index.go

copy
12345678
func myFunc() { var number int = 7 fmt.Println(number) // Accessible here } func main() { fmt.Println(number) // Not accessible here }

Ще один важливий момент: не можна оголошувати дві або більше змінних з однаковим ім'ям у межах однієї області видимості або у перетинаючихся областях видимості.

index.go

index.go

copy
1234567891011
func myFunc1() { var number int = 7 var number int = 9 // Error here } func myFunc2() { var number int = 7 if(2 > 1) { var number int = 9 // Error here } }

Однак можливо оголошувати змінні з однаковими іменами в різних областях видимості:

index.go

index.go

copy
1234567891011121314151617
package main import "fmt" func myFunc1() { var number int = 7 fmt.Println("In Func 1:", number) } func myFunc2() { var number int = 9 fmt.Println("In Func 2:", number) } func main() { myFunc1() myFunc2() }
question mark

У якій області видимості слід розмістити var value int = 6, щоб уникнути помилок?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 2
some-alt