يحدد نطاق المتغير في Golang جزء البرنامج الذي يمكن الوصول إليه من خلال هذا المتغير. في Go، جميع المعرفات لها نطاق معجمي، مما يعني أنه يمكن تحديد النطاق في وقت التجميع. لا يمكن الوصول إلى المتغير إلا داخل كتلة التعليمات البرمجية التي تم تعريفه فيها.

على سبيل المثال:
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
var variableName type = value
المتغيرات المحلية
يتم إعلان المتغيرات المحلية داخل دالة أو كتلة ولا يمكن الوصول إليها خارج تلك الكتلة. يمكن أيضًا إعلانها في حلقات وشروط ولكنها تقتصر على نطاق الكتلة.
على سبيل المثال:
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
}
نتيجة:
200
المتغيرات العالمية
يتم تعريف المتغيرات العالمية خارج أي وظيفة أو كتلة، مما يجعلها قابلة للوصول في جميع أنحاء البرنامج بأكمله.
على سبيل المثال:
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
}
نتيجة:
100
أولوية المتغير المحلي
عندما يكون اسم متغير محلي هو نفس اسم متغير عالمي، فإن المتغير المحلي يأخذ الأسبقية ضمن نطاقه.
على سبيل المثال:
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ộ
}
نتيجة:
Biến cục bộ có mức độ ưu tiên: 200