Déclarer et utiliser des variables

Effectué

Commençons ce module en examinant comment déclarer et utiliser des variables en Go. Il existe plusieurs façons de déclarer une variable. Nous allons examiner chacune d’elles et vous choisirez celle qui convient le mieux à vos besoins ou à votre style. Nous noterons certains éléments propres à Go à mesure que nous explorerons les concepts de base des variables.

Cette section comporte des extraits de code que vous pouvez exécuter dans Visual Studio Code ou dans le Go Playground (Terrain de jeu Go).

Déclarer des variables

Pour déclarer une variable, vous devez utiliser le mot clé var :

var firstName string

L’instruction précédente déclare une variable nommée firstName de type string. (Nous aborderons les types de données dans la prochaine section.) Cet exemple montre la façon la plus simple de déclarer une variable. Si vous souhaitez déclarer une autre variable, ajoutez simplement une instruction similaire à la précédente. Vous pouvez déclarer plusieurs variables sur une seule ligne si elles sont du même type :

var firstName, lastName string

En ajoutant une virgule (,) après le nom d’une variable, vous indiquez que vous êtes sur le point de déclarer une autre variable. En l’occurrence, l’instruction précédente déclare deux variables nommées firstName et lastName de type string. Si vous souhaitez ajouter une troisième variable de type int, le code doit ressembler à ceci :

var firstName, lastName string
var age int

Une autre façon d’écrire l’instruction précédente consiste à utiliser des parenthèses après le mot clé var, comme si vous utilisiez un bloc dédié pour déclarer des variables, comme suit :

var (
    firstName, lastName string
    age int
)

Initialiser les variables

À ce stade, vous avez uniquement déclaré des variables, mais celles-ci peuvent nécessiter une valeur initiale. En Go, vous pouvez initialiser des variables de différentes façons. Par exemple, sur la base de l’exemple précédent, vous pouvez initialiser chaque variable à l’aide de ce code :

var (
    firstName string = "John"
    lastName  string = "Doe"
    age       int    = 32
)

Quand vous initialisez une variable avec une valeur, vous n’avez pas besoin de spécifier son type, car Go le déduit automatiquement. Par exemple, vous pouvez déclarer et initialiser des variables de la manière suivante :

var (
    firstName = "John"
    lastName  = "Doe"
    age       = 32
)

Go déduit que les variables firstName et lastName sont de type string et que la variable age est de type int.

Différentes façons d’initialiser des variables

En Go, vous pouvez déclarer et initialiser des variables sur une seule ligne. Vous devez séparer chaque nom de variable par une virgule et faire de même pour chaque valeur (dans le même ordre), comme suit :

var (
    firstName, lastName, age = "John", "Doe", 32
)

Il existe une autre façon de déclarer et d’initialiser des variables. Cette méthode est la plus courante en Go. Le même exemple que ci-dessus pourrait ressembler à ceci :

package main

import "fmt"

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
    fmt.Println(firstName, lastName, age)
}

Notes

Notez l’instruction import "fmt". Nous utilisons le mot clé import pour placer le contenu d’un package dans l’étendue. Nous importons le package « fmt » pour pouvoir utiliser la méthode Println dans notre code. Nous examinerons ce mot clé de plus près dans une prochaine unité.

Exécutez le code précédent pour vérifier que cette façon de déclarer et d’initialiser des variables fonctionne.

Notez qu’ici, après avoir défini le nom de la variable, vous devez inclure un signe deux-points égal (:=) immédiatement suivi de la valeur de la variable. Quand vous utilisez le signe deux-points égal, la variable que vous déclarez doit être une nouvelle variable. Si vous utilisez un signe deux-points égal et que la variable a déjà été déclarée, le programme n’est pas compilé. Ajoutez l’âge comme une constante (voir la section suivante), mais utilisez le signe deux-points égal (:=) et faites un essai.

Enfin, vous pouvez utiliser le signe deux-points égal uniquement à l’intérieur d’une fonction. Quand vous déclarez des variables en dehors d’une fonction, vous devez le faire à l’aide du mot clé var. Ne vous inquiétez pas si vous n’êtes pas familiarisé avec les fonctions. Nous les aborderons dans une unité ultérieure.

Déclarer des constantes

Vous pouvez être amené à utiliser des valeurs statiques dans votre code, appelées constantes. Go prend en charge l’utilisation de constantes. Le mot clé pour en déclarer une est const.

Par exemple, vous pouvez déclarer une constante comme celle-ci :

const HTTPStatusOK = 200

Comme avec les variables, le type d’une constante est déduit de la valeur qui lui est assignée. En Go, les noms de constantes se composent généralement de lettres majuscules ou d’une combinaison de lettres majuscules et de lettres minuscules.

Si vous avez besoin de déclarer plusieurs constantes dans un bloc, vous pouvez le faire de la façon suivante :

const (
    StatusOK              = 0
    StatusConnectionReset = 1
    StatusOtherError      = 2
)

Notes

Go présente un concept intéressant en ce qui concerne les constantes appelé iota, que nous n’aborderons pas dans ce module. Toutefois, vous pouvez en découvrir plus à ce sujet en consultant la page wiki de Go sur GitHub. Gardez juste à l’esprit que iota est un mot clé qu’utilise Go pour simplifier les définitions de constantes quand les valeurs sont séquentielles.

Même s’il existe des similitudes entre les constantes et les variables, il existe des différences clés. Par exemple, vous pouvez déclarer des constantes sans les utiliser et vous n’obtiendrez pas de message d’erreur. Vous ne pouvez pas utiliser le signe deux-points égal pour déclarer des constantes. Go ne manquera pas de réagir si vous le faites.

Go génère une erreur si vous déclarez des variables et que vous ne les utilisez pas

Vous devez garder à l’esprit un point fondamental au sujet du langage Go. Quand vous déclarez une variable et que vous ne l’utilisez pas, Go génère une erreur et non un avertissement comme le font d’autres langages de programmation.

Par exemple, revenons à l’un de nos exemples précédents et supprimons l’appel fmt.Println :

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
}

Quand vous exécutez ce code dans Visual Studio Code ou dans le Terrain de jeu Go, vous voyez qu’il y a une erreur dans les lignes où vous déclarez les variables. Vous voyez les messages d’erreur suivants :

./main.go:4:2: firstName declared but not used
./main.go:4:13: lastName declared but not used
./main.go:5:2: age declared but not used

Gardez à l’esprit que pour chaque variable que vous déclarez en Go, vous devez l’utiliser quelque part.