ขอบเขตของตัวแปรใน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