Sfera de aplicare a unei variabile în Golang determină partea din program în care acea variabilă este accesibilă. În Go, toți identificatorii au un domeniu de aplicare lexical, ceea ce înseamnă că domeniul de aplicare poate fi determinat în timpul compilării. O variabilă este accesibilă numai în cadrul blocului de cod în care este definită.

De exemplu:
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)
}
Sintaxă variabilă în Golang
var variableName type = value
Variabile locale
Variabilele locale sunt declarate în cadrul unei funcții sau al unui bloc și nu pot fi accesate în afara blocului respectiv. Ele pot fi, de asemenea, declarate în bucle și condiționale, dar sunt limitate la domeniul de aplicare al blocului.
De exemplu:
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
}
Rezultat:
200
Variabile globale
Variabilele globale sunt definite în afara oricărei funcții sau bloc, făcându-le accesibile în întregul program.
De exemplu:
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
}
Rezultat:
100
Prioritate variabilă locală
Când o variabilă locală are același nume ca o variabilă globală, variabila locală are prioritate în domeniul său.
De exemplu:
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ộ
}
Rezultat:
Biến cục bộ có mức độ ưu tiên: 200