Skop pembolehubah dalam Golang menentukan bahagian program di mana pembolehubah itu boleh diakses. Dalam Go, semua pengecam mempunyai skop leksikal, bermakna skop boleh ditentukan pada masa penyusunan. Pembolehubah hanya boleh diakses dalam blok kod di mana ia ditakrifkan.

Contohnya:
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)
}
Sintaks skop pembolehubah dalam Golang
var variableName type = value
Pembolehubah tempatan
Pembolehubah setempat diisytiharkan dalam fungsi atau blok dan tidak boleh diakses di luar blok itu. Ia juga boleh diisytiharkan dalam gelung dan bersyarat tetapi terhad kepada skop blok.
Contohnya:
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
}
Keputusan:
200
Pembolehubah global
Pembolehubah global ditakrifkan di luar sebarang fungsi atau blok, menjadikannya boleh diakses sepanjang keseluruhan program.
Contohnya:
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
}
Keputusan:
100
Keutamaan pembolehubah tempatan
Apabila pembolehubah tempatan mempunyai nama yang sama dengan pembolehubah global, pembolehubah tempatan diutamakan dalam skopnya.
Contohnya:
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ộ
}
Keputusan:
Biến cục bộ có mức độ ưu tiên: 200