Lze uvnitř funkce získat přístup k proměnné deklarované jako veřejná a nacházející se v jejím bloku složených závorek?
sobes.tech AI
Odpověď od AI
V Go je rozsah proměnné omezen na blok, ve kterém je deklarována. Pokud je proměnná deklarována uvnitř složených závorek funkce (lokální proměnná), je dostupná pouze uvnitř této funkce a jejích vnořených blocích. Viditelnost (exportovatelnost) proměnné v Go je určena velkým písmenem na začátku jejího jména a vztahuje se na viditelnost z jiných balíčků, nikoliv uvnitř funkce.
Tedy uvnitř funkce můžete přistupovat k proměnné deklarované v jejích složených závorkách, pokud byla deklarována ve stejné funkci nebo v externích oblastech viditelnosti. Pokud je proměnná deklarována uvnitř funkce, je lokální a dostupná pouze uvnitř této funkce. Pokud je proměnná deklarována mimo funkci a je exportována (veřejná), lze k ní také uvnitř funkce přistupovat.
Příklad:
package main
import "fmt"
var PublicVar = "přístupná všude v balíčku a z jiných balíčků"
func příklad() {
localVar := "přístupná pouze uvnitř příkladu"
fmt.Println(PublicVar) // přístup k veřejné proměnné
fmt.Println(localVar) // přístup k lokální proměnné
}
func main() {
příklad()
}
Pokud je proměnná deklarována uvnitř funkce, nemůže být dostupná mimo tuto funkci, i když její jméno začíná velkým písmenem (je "veřejná").