Der Gültigkeitsbereich einer Variable in Golang bestimmt, für welchen Teil des Programms die Variable zugänglich ist. In Go haben alle Bezeichner einen lexikalischen Gültigkeitsbereich, d. h. der Gültigkeitsbereich kann zur Kompilierzeit bestimmt werden. Eine Variable ist nur innerhalb des Codeblocks zugänglich, in dem sie definiert ist.

Zum Beispiel:
package main
import "fmt"
// Khai báo biến toàn cụ
var myVariable int = 100
func main() {
// Biến cục bộ trong hàm chính
var localVar int = 200
fmt.Printf("Inside main - Global variable: %d\n", myVariable)
fmt.Printf("Inside main - Local variable: %d\n", localVar)
display()
}
func display() {
fmt.Printf("Inside display - Global variable: %d\n", myVariable)
}
Syntax für variablen Gültigkeitsbereich in Golang
var variableName type = value
Lokale Variablen
Lokale Variablen werden innerhalb einer Funktion oder eines Blocks deklariert und sind außerhalb dieses Blocks nicht zugänglich. Sie können auch innerhalb von Schleifen und Bedingungen deklariert werden, sind jedoch auf den Gültigkeitsbereich des Blocks beschränkt.
Zum Beispiel:
package main
import "fmt"
func main() {
var localVar int = 200 // Biến cục bộ
fmt.Printf("%d\n", localVar) // Có thể truy cập tại đây
}
Ergebnis:
200
Globale Variablen
Globale Variablen werden außerhalb jeder Funktion oder jedes Blocks definiert, sodass sie im gesamten Programm zugänglich sind.
Zum Beispiel:
package main
import "fmt"
// Khai báo biến toàn cục
var myVariable int = 100 // Biến toàn cục
func main() {
fmt.Printf("%d\n", myVariable) // Có thể truy cập tại đây
}
Ergebnis:
100
Priorität lokaler Variablen
Wenn eine lokale Variable denselben Namen wie eine globale Variable hat, hat die lokale Variable innerhalb ihres Gültigkeitsbereichs Vorrang.
Zum Beispiel:
package main
import "fmt"
// Khai báo biến toàn cục
var myVariable int = 100 // Biến toàn cục
func main() {
var myVariable int = 200 // Biến cục bộ
fmt.Printf("Local variable takes precedence: %d\n", myVariable) // Truy cập biến cục bộ
}
Ergebnis:
Biến cục bộ có mức độ ưu tiên: 200