La portée d'une variable dans Golang détermine la partie du programme où cette variable est accessible. En Go, tous les identifiants ont une portée lexicale, ce qui signifie que la portée peut être déterminée au moment de la compilation. Une variable n'est accessible que dans le bloc de code dans lequel elle est définie.

Par exemple:
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)
}
Syntaxe de portée variable en Golang
var variableName type = value
Variables locales
Les variables locales sont déclarées dans une fonction ou un bloc et ne sont pas accessibles en dehors de ce bloc. Ils peuvent également être déclarés dans des boucles et des conditions, mais sont limités à la portée du bloc.
Par exemple:
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
}
Résultat:
200
Variables globales
Les variables globales sont définies en dehors de toute fonction ou bloc, ce qui les rend accessibles dans tout le programme.
Par exemple:
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
}
Résultat:
100
Priorité des variables locales
Lorsqu'une variable locale porte le même nom qu'une variable globale, la variable locale a la priorité dans sa portée.
Par exemple:
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ộ
}
Résultat:
Biến cục bộ có mức độ ưu tiên: 200