Golang'da bir değişkenin kapsamı, o değişkenin programda hangi bölümde erişilebilir olduğunu belirler. Go'da tüm tanımlayıcıların sözcüksel kapsamı vardır, yani kapsam derleme zamanında belirlenebilir. Bir değişkene yalnızca tanımlandığı kod bloğu içerisinden erişilebilir.

Örneğin:
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)
}
Golang'da değişken kapsam sözdizimi
var variableName type = value
Yerel değişkenler
Yerel değişkenler bir fonksiyon veya blok içerisinde tanımlanır ve bu blok dışından erişilemezler. Bunlar döngüler ve koşullar içerisinde de tanımlanabilir ancak blok kapsamı ile sınırlıdır.
Örneğin:
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
}
Sonuç:
200
Küresel değişkenler
Küresel değişkenler herhangi bir fonksiyon veya bloğun dışında tanımlanır ve bu sayede tüm program boyunca erişilebilir hale gelirler.
Örneğin:
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
}
Sonuç:
100
Yerel değişken önceliği
Yerel bir değişkenin adı küresel bir değişkenle aynı olduğunda, yerel değişken kendi kapsamı içinde önceliğe sahip olur.
Örneğin:
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ộ
}
Sonuç:
Biến cục bộ có mức độ ưu tiên: 200