Phạm vi của một biến trong Golang xác định phần chương trình mà biến đó có thể truy cập được. Trong Go, tất cả các định danh đều có phạm vi từ vựng, nghĩa là phạm vi có thể được xác định tại thời điểm biên dịch. Một biến chỉ có thể truy cập được trong khối mã mà nó được định nghĩa.
Ví dụ:
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)
}
Cú pháp phạm vi biến trong Golang
var variableName type = value
Biến cục bộ
Biến cục bộ được khai báo trong một hàm hoặc một khối và không thể truy cập được bên ngoài khối đó. Chúng cũng có thể được khai báo trong các vòng lặp và điều kiện nhưng bị giới hạn trong phạm vi khối.
Ví dụ:
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
}
Kết quả:
200
Biến toàn cục
Biến toàn cục được định nghĩa bên ngoài bất kỳ hàm hoặc khối nào, khiến chúng có thể truy cập được trong toàn bộ chương trình.
Ví dụ:
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
}
Kết quả:
100
Ưu tiên biến cục bộ
Khi một biến cục bộ có cùng tên với một biến toàn cục, biến cục bộ sẽ được ưu tiên trong phạm vi của nó.
Ví dụ:
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ộ
}
Kết quả:
Biến cục bộ có mức độ ưu tiên: 200