De scope van een variabele in Golang bepaalt het deel van het programma waar die variabele toegankelijk is. In Go hebben alle identifiers een lexicale scope. Dit betekent dat de scope tijdens compile-tijd kan worden bepaald. Een variabele is alleen toegankelijk binnen het codeblok waarin deze is gedefinieerd.

Bijvoorbeeld:
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)
}
Syntaxis van variabele scope in Golang
var variableName type = value
Lokale variabelen
Lokale variabelen worden gedeclareerd binnen een functie of blok en zijn niet toegankelijk buiten dat blok. Ze kunnen ook in lussen en voorwaarden worden gedeclareerd, maar zijn beperkt tot het blokbereik.
Bijvoorbeeld:
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
}
Resultaat:
200
Globale variabelen
Globale variabelen worden buiten een functie of blok gedefinieerd, waardoor ze in het hele programma toegankelijk zijn.
Bijvoorbeeld:
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
}
Resultaat:
100
Lokale variabele prioriteit
Wanneer een lokale variabele dezelfde naam heeft als een globale variabele, heeft de lokale variabele voorrang binnen het bereik.
Bijvoorbeeld:
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ộ
}
Resultaat:
Biến cục bộ có mức độ ưu tiên: 200