Structures de contrôle (if, for, switch, defer)#
Condition if-else#
- En Go, la syntaxe de base pour une instruction if est :
if condition { // instructions } else { // instructions }
. Notons que contrairement à d'autres langages, il n'y a pas de parenthèses entourant la condition en Go. - La condition dans l'instruction if doit être un booléen. Go est strictement typé et ne convertira pas automatiquement d'autres types en booléens.
- Go permet l'utilisation d'une instruction de pré-condition où une variable peut être définie dont la portée est limitée à la condition du bloc if. Exemple :
if x := computeSomething(); x < 10 { // instructions }
. - Les informations détaillées peuvent être trouvées dans la documentation officielle du langage Go : https://golang.org/doc/effective_go#if
Exemple de code :
if x := 10; x%2 == 0 {
fmt.Println(x, "is even")
} else {
fmt.Println(x, "is odd")
}
Boucles for et variations (for-range)#
- En Go,
for
est l'unique mot clé pour les boucles, qui peut être utilisé de plusieurs manières :for init; condition; post { // instructions }
,for condition { // instructions }
,for { // instructions }
pour une boucle sans fin. - Une autre variation du for est le
for range
, utilisé pour itérer sur des éléments dans une variété de structures de données comme les slices, arrays, strings, maps, ou channels. - Pour plus de détails sur l'utilisation des boucles for en Go, vous pouvez consulter la documentation officielle : https://golang.org/doc/effective_go#control-structures
Exemple de code :
for i := 0; i < 5; i++ {
fmt.Println(i)
}
nums := []int{2, 3, 4}
for i, num := range nums {
fmt.Println("index:", i, "value:", num)
}
Instruction switch-case#
- En Go, l'instruction
switch
permet d'exécuter une branche de code parmi plusieurs possibles, basée sur l'évaluation d'une expression. - Contrairement à d'autres langages, il n'est pas nécessaire d'utiliser
break
à la fin de chaquecase
en Go. Le contrôle de programme sort duswitch
dès qu'uncase
correspond. - Les
case
en Go peuvent avoir plusieurs valeurs séparées par des virgules et peuvent également avoir des conditions, pas seulement des valeurs. - Pour plus de détails sur l'utilisation de switch en Go, consultez la documentation officielle : https://golang.org/doc/effective_go#switch
Exemple de code :
switch day := 5; day {
case 1, 2, 3, 4, 5:
fmt.Println("Weekday")
default:
fmt.Println("Weekend")
}
Utilisation de defer#
- En Go,
defer
est utilisé pour s'assurer qu'une fonction est appelée plus tard dans le programme, généralement à des fins de nettoyage.defer
est souvent utilisé pour simplifier les fonctions qui effectuent diverses opérations de nettoyage. - Les appels de fon
ctions différés sont exécutés dans le style LIFO (Last In First Out). * Pour plus d'informations sur l'utilisation de defer en Go, consultez la documentation officielle : https://golang.org/doc/effective_go#defer
Exemple de code :
func readFile(filename string) {
file, err := os.Open(filename)
if err != nil {
log.Fatal(err)
}
defer file.Close()
// read the file
}