Portée des variables en Go

La portée est la zone du code source où la constante, le type, la variable, la fonction ou le paquet représenté par un identifiant déclaré prend effet.

En Go, les variables peuvent être déclarées à trois endroits :

  • Les variables définies à l'intérieur d'une fonction sont appelées variables locales
  • Les variables définies à l'extérieur d'une fonction sont appelées variables globales
  • Les variables dans une définition de fonction sont appelées paramètres formels

Ensuite, examinons de plus près les variables locales, les variables globales et les paramètres formels.


Variables locales

Les variables déclarées à l'intérieur du corps d'une fonction sont appelées variables locales. Leur portée est limitée au corps de la fonction. Les paramètres et les variables de valeur de retour sont également des variables locales.

Dans l'exemple suivant, la fonction main() utilise les variables locales a, b et c :

Exemple

package main

import "fmt"

func main() {
   /* déclarer les variables locales */
   var a, b, c int

   /* initialiser les paramètres */
   a = 10
   b = 20
   c = a + b

   fmt.Printf ("Result: a = %d, b = %d and c = %d\n", a, b, c)
}

Le résultat de sortie de l'exemple ci-dessus est :

结果: a = 10, b = 20 and c = 30

Variables globales

Les variables déclarées à l'extérieur du corps d'une fonction sont appelées variables globales. Les variables globales peuvent être utilisées dans l'ensemble du paquet, voire dans des paquets externes (après avoir été exportées).

Les variables globales peuvent être utilisées dans n'importe quelle fonction. L'exemple suivant montre comment utiliser les variables globales :

Exemple

package main

import "fmt"

/* déclarer les variables globales */
var g int

func main() {

   /* déclarer les variables locales */
   var a, b int

   /* initialiser les paramètres */
   a = 10
   b = 20
   g = a + b

   fmt.Printf("Résultat : a = %d, b = %d et g = %d\n", a, b, g)
}

Le résultat de sortie de l'exemple ci-dessus est :

结果: a = 10, b = 20 and g = 30

Dans les programmes en langage Go, les variables globales et les variables locales peuvent avoir le même nom, mais les variables locales à l'intérieur d'une fonction sont prioritaires. Voici un exemple :

Exemple

package main

import "fmt"

/* déclarer les variables globales */
var g int = 20

func main() {
   /* déclarer les variables locales */
   var g int = 10

   fmt.Printf ("Résultat : g = %d\n",  g)
}

Le résultat de sortie de l'exemple ci-dessus est :

结果: g = 10

Paramètres formels

Les paramètres formels sont utilisés comme variables locales de la fonction. Voici un exemple :

Exemple

package main

import "fmt"

/* déclarer les variables globales */
var a int = 20;

func main() {
   /* déclarer les variables locales dans la fonction main */
   var a int = 10
   var b int = 20
   var c int = 0

   fmt.Printf("a = %d dans la fonction main()\n",  a);
   c = sum( a, b);
   fmt.Printf("c = %d dans la fonction main()\n",  c);
}

/* définition de fonction - ajouter deux nombres */
func sum(a, b int) int {
   fmt.Printf("a = %d dans la fonction sum()\n",  a);
   fmt.Printf("b = %d dans la fonction sum()\n",  b);

   return a + b;
}

Le résultat de sortie de l'exemple ci-dessus est :

main()函数中 a = 10
sum() 函数中 a = 10
sum() 函数中 b = 20
main()函数中 c = 30

Initialisation des variables locales et globales

Les valeurs par défaut pour différents types de variables locales et globales sont :

Types de données Initialiser les valeurs par défaut
int 0
float32 0
pointeur nil
autres extensions