Logo marque du langage Go

Série : Langage GO – Déclarer des variables

C’est bien de connaitre les différents types de variables mais encore faut-il savoir comment les déclarer avec de pouvoir les utiliser dans nos programmes. Ce billet propose de montrer les différentes syntaxes de délcaratio

Introduction

C’est bien de connaitre les différents types de variables mais encore faut-il savoir comment les déclarer avec de pouvoir les utiliser dans nos programmes. Nous allons passer en revue les différentes syntaxe, de la plus verbeuse jusqu’à celle que l’on utilisera couramment dans nos programmes.

Dans le langage GO, les affectations de valeurs à des variables s’effectue à l’aide du signe égale =. Cela peut paraitre une remarque désuète mais elle prendra tout son sens un peu plus tard dans ce billet.

PRINCIPE GO

Il faut bien retenir que dans les principes GO, que toute variable qui est déclarée doit être IMPERATIVEMENT utilisée.
Si nous déclarons une variable sans l’utiliser, on obtiendra une erreur à la compilation, et en fonction des IDE une erreur avant même la compilation.

Le mot clé var

La déclaration la plus standard est avec l’utilisation du mot clé var, son type, éventuellement une valeur initiale et un nom.

Syntaxes

La première est la plus complète et la plus verbeuse, on a tout préciser.

var <NOM_DE_VARIABLE> [TYPE] = <VALEUR_INITIALE>

Dans cette deuxième syntaxe nous avons omis de mettre une valeur initiale car celle-ci n’est pas obligatoire, par conséquent GO va mettre une valeur par défaut en fonction du type de la variable (voir l’exemple)

var <NOM_DE_VARIABLE> [TYPE]

Dans certains cas, nous devons déclarer plusieurs variables qui ont un type identique pour cela GO propose une syntaxe, comme précédemment avec des valeurs initiale ou sans valeurs initiales.

Ici avec des valeurs initiales.

var <VARIABLE1>, <VARIABLE2>, ... [TYPE] = <VALEUR1>, <VALEUR2>, <VALEUR3>, ...

Ici la déclaration sans valeur, GO affectera des valeurs par défauts en fonction du [TYPE]

var <VARIABLE1>, <VARIABLE2>, ... [TYPE]

Exemple avec le mot clé var

package main

import (
	"fmt"
)

func main() {

	var valeur1 int = 20
	var message string = "Welcome to you !!!"
	var smiley rune = rune(0x1F604)

	var valeur2 int
	var name string

	var entier1, entier2, entier3 int = 1, 2, 3

	var a, b, c = 1, 2, "zzz"

	d, e, f := "John", 12, 2.5

	fmt.Printf("%v %T\n", valeur1, valeur1)
	fmt.Printf("%v %T\n", message, message)
	fmt.Printf("%v %T %U %c\n", smiley, smiley, smiley, smiley)

	fmt.Printf("%v %T\n", valeur2, valeur2)
	fmt.Printf("[%v] %T\n", name, name)

	fmt.Printf("%d %d %d\n", entier1, entier2, entier3)

	fmt.Printf("%T %T %T\n", a, b, c)
	fmt.Printf("%T %T %T\n", d, e, f)

}

Par inférence de type

L’inférence de type et donc sa détermination se fera grâce à la valeur initiale fournie. Dans le 1ere exemple se sera le type string, le deuxième le type float64 et le dernier le type int. Le type de la variable ne changera pas et ne pourra plus être changer au cours du programme.

Syntaxe

Noté bien l’utilisation du := qui signifie une déclaration et une inférence puisqu’une valeur initiale est obligatoire dans ce cas.

<NOM_DE_VARIABLE> := <VALEUR_INITIALE>
L’inférence de type

Go va pouvoir avec ce type de déclaration et UNIQUEMENT de la compilation et non pas lors de l’exécution déterminer le type de la variable.

Symbole de déclaration

Si vous utilisez := alors que la variable a déjà été déclaré vous obtiendrez une erreur à la compilation de ce genre : no new variables on left side of :=. Vous aurez aussi en fonction de l’IDE utilisé une erreur avant même la compilation.

package main

import (
	"fmt"
)

func main() {

	d, e, f := "John", 2.5, 12

	fmt.Printf("%T %T %T\n", d, e, f)
}

En résumé

Voilà maintenant vous savez :

  • les déclarer de la façon la plus explicite à la plus courte ;
  • leur affecter des valeurs en cours ou à l’initialisation avec = ou := ;

A lire aussi …

Frédéric Schmidt

Lead Technical Architect.

Ajouer un commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Recent Comments

    %d blogueurs aiment cette page :