Je možné vo vnútri funkcie získať prístup k premennej, ktorá je deklarovaná ako verejná a nachádza sa v oblasti jej zložených zátvoriek?
sobes.tech AI
Odpoveď od AI
V Go je rozsah premennej obmedzený na blok, v ktorom je deklarovaná. Ak je premennej deklarovaná v zátvorkách funkcie (lokálna premenná), je dostupná iba v tejto funkcii a jej vnorených blokoch. Viditeľnosť (exportovateľnosť) premennej v Go je určená veľkým písmenom na začiatku jej mena a týka sa viditeľnosti z iných balíkov, nie vo vnútri funkcie.
Takže vo vnútri funkcie môžete získať prístup k premennej deklarovanej v jej zátvorkách, ak bola deklarovaná v tej istej funkcii alebo v externých oblastiach viditeľnosti. Ak je premennej deklarovaná vo vnútri funkcie, je lokálna a dostupná iba v tejto funkcii. Ak je premennej deklarovaná mimo funkcie a je exportovaná (verejná), môžete k nej tiež pristupovať vo vnútri funkcie.
Príklad:
package main
import "fmt"
var PublicVar = "dostupná všade v balíku a z iných balíkov"
func príklad() {
localVar := "len vo vnútri príkladu dostupná"
fmt.Println(PublicVar) // prístup k verejnej premennej
fmt.Println(localVar) // prístup k lokálnej premennej
}
func main() {
príklad()
}
Ak je premennej deklarovaná vo vnútri funkcie, nemôže byť dostupná mimo tejto funkcie, aj keď jej meno začína veľkým písmenom (je "verejná").