Sobes.tech
Junior — Middle

Оё имкон дорад дар дохили функсия ба тағйирёбандаи, ки ҳамчун умумӣ эълон шудааст ва дар доираи мӯҳрҳои он ҷойгир аст, дастрасӣ пайдо кард?

sobes.tech AI

Ҷавоб аз AI

В Go обхватът на променлива е ограничен до блока, в който е обявена. Ако променлива е обявена вътре в скобите на функция (локална променлива), тя е достъпна само вътре в тази функция и нейните вложени блокове. Видимостта (експортируемостта) на променлива в Go се определя от главната буква в името й и се отнася до видимостта от други пакети, не вътре във функция.

Така, вътре във функция, можете да получите достъп до променлива, обявена в нейните скоби, ако е обявена в същата функция или в външни области на видимост. Ако променливата е обявена вътре във функция, тя е локална и е достъпна само вътре в тази функция. Ако променливата е обявена извън функцията и е експортирана (публична), към нея също може да се обърнете вътре във функцията.

Пример:

package main

import "fmt"

var PublicVar = "достъпна навсякъде в пакета и от други пакети"

func пример() {
    localVar := "достъпна само вътре в пример"
    fmt.Println(PublicVar) // достъп до публичната променлива
    fmt.Println(localVar)  // достъп до локалната променлива
}

func main() {
    пример()
}

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