Sichtbarkeit von Variablen innerhalb eines Pakets
Variablen haben immer auch eine Sichtbarkeit oder einen Gültigkeitsbereich. Globale Variablen sind im ganzen Paket sichtbar, lokale Variablen sind ab ihrer Definition sichtbar und können überschrieben werden.
Neben der Sichtbarkeit innerhalb eines Pakets gibt es auch die Sichtbarkeit externer Pakete, das im Abschnitt Sichtbarkeitsregeln beschrieben ist.
package main
import "fmt"
// Ist im ganzen Paket (main) sichtbar, nicht nur in dieser Datei
var meinName = "Gopher"
func leseZahl() int {
return 3
}
func main() {
// Nur in der Funktion main() sichtbar
var meinAlter int
if a := leseZahl(); a > 1 {
// nach dem Ende der Bedingung ist meinName
// auf den Ursprungswert zurückgesetzt
//
// meinName darf lokal auch einen anderen
// Typ haben
meinName := 123
fmt.Println(meinName)
}
// a ist hier nicht mehr sichtbar, Fehler!
// fmt.Println(a)
fmt.Println(meinAlter)
}