El alcance de una variable en Golang determina la parte del programa donde esa variable es accesible. En Go, todos los identificadores tienen alcance léxico, lo que significa que el alcance se puede determinar en tiempo de compilación. Una variable sólo es accesible dentro del bloque de código en el que está definida.

Por ejemplo:
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)
}
Sintaxis de alcance variable en Golang
var variableName type = value
Variables locales
Las variables locales se declaran dentro de una función o un bloque y no se puede acceder a ellas fuera de ese bloque. También se pueden declarar en bucles y condicionales, pero están limitados al alcance del bloque.
Por ejemplo:
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
}
Resultado:
200
Variables globales
Las variables globales se definen fuera de cualquier función o bloque, lo que las hace accesibles en todo el programa.
Por ejemplo:
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
}
Resultado:
100
Prioridad de variable local
Cuando una variable local tiene el mismo nombre que una variable global, la variable local tiene prioridad dentro de su ámbito.
Por ejemplo:
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ộ
}
Resultado:
Biến cục bộ có mức độ ưu tiên: 200