`switch` avec expressions
Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 40 sur 109.
Apprenons-en plus sur les expressions switch en Go, qui nous permettent d'évaluer une valeur directement dans l'instruction switch.
Tout d'abord, voyons comment utiliser une instruction switch avec une expression pour vérifier si un nombre est positif, négatif ou nul :
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Après l'exécution de ce code, le programme affichera à l'écran :
Negative numberRemarquez que nous utilisons switch { sans aucune valeur après. Cela signifie que Go évaluera chaque expression case comme une condition booléenne. Puisque num vaut -5, le deuxième cas num < 0 est évalué à vrai, donc "Negative number" est affiché.
Nous pouvons également initialiser une variable directement dans l'instruction switch. Voyons comment cela fonctionne :
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Après l'exécution de ce code, nous obtenons le même résultat :
Negative numberDans cet exemple, nous avons déclaré et initialisé num directement dans l'instruction switch. Le point-virgule sépare l'initialisation de l'expression switch (qui est vide ici). Cela rend notre code plus compact tout en conservant la même fonctionnalité.
Défi
Débutantswitch simple en Go. Vous devez compléter le code pour déterminer la description d'un jour en fonction de son nom à l'aide d'une instruction switch.Une variable
dayName est déjà définie avec la valeur "Wednesday". Votre tâche consiste à utiliser une expression switch pour définir la variable description sur :-
"Start of the week" pour Monday-
"Midweek" pour Wednesday-
"Almost weekend" pour Friday-
"Weekend" pour Saturday ou Sunday-
"Regular day" pour tout autre jourAide-mémoire
Les expressions switch en Go vous permettent d'évaluer des conditions directement dans l'instruction switch.
Utilisez switch { sans valeur pour évaluer des expressions booléennes dans chaque cas :
num := -5
switch {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Vous pouvez initialiser une variable directement dans l'instruction switch en utilisant un point-virgule pour séparer l'initialisation de l'expression switch :
switch num := -5; {
case num > 0:
fmt.Println("Positive number")
case num < 0:
fmt.Println("Negative number")
default:
fmt.Println("Zero")
}Essayez vous-même
package main
import "fmt"
func main() {
// Le nom du jour est déjà défini
dayName := "Wednesday"
// Variable pour stocker la description
var description string
// TODO: Écrire une instruction switch qui définit la description en fonction de dayName
// Pour Monday: "Start of the week"
// Pour Wednesday: "Midweek"
// Pour Friday: "Almost weekend"
// Pour Saturday ou Sunday: "Weekend"
// Pour tout autre jour: "Regular day"
// Afficher le résultat
fmt.Printf("%s is %s\n", dayName, description)
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs de comparaison et logiques
Opérateurs de comparaison - Partie 1Opérateurs de comparaison - Partie 2Opérateur logique ANDOpérateur logique OROpérateur logique NOTBases de la priorité des opérateursRécapitulatif - Effectuer des comparaisons7Structures de contrôle : Les boucles
Explication de la boucle `for`Boucle For - Les basesBoucle For - Condition uniquementLe mot-clé `break`Le mot-clé `continue`Boucles imbriquéesRécapitulatif - Répéter des actions2Variables et types de données de base
Qu'est-ce qu'une variableInférence de type avec `:=` Entiers (int)Nombres à virgule flottanteBooléensChaînes de caractères (Strings)Valeurs zéroConstantesConventions de nommageRécapitulatif - Variables et types5Entrées/Sorties de base
Sortie formatéeVerbes de formatageAffichage des typesSaisie utilisateur de baseRécapitulatif - Entrées et Sorties8Fonctions
Comprendre les fonctionsDéclarer une fonctionAppeler des fonctionsParamètres de fonctionRetourner une valeur uniqueRetourner plusieurs valeursValeurs de retour nomméesBases de la portée des fonctionsRécapitulatif - Créer du code réutilisable11Types composites : Slices
Introduction aux SlicesDéclaration de littéraux de SlicesCréation de Slices avec `make`Longueur vs Capacité des SlicesAccès aux éléments d'un SliceAjout d'élémentsDécoupage de Slices/Tableaux existantsItération sur les SlicesCopie de SlicesRécapitulatif - Listes dynamiques3Opérateurs de base
Opérateurs arithmétiquesOpérateur de divisionL'opérateur moduloOpérateur d'affectationOpérateurs d'affectation augmentéeIncrémentation et décrémentationRécapitulatif - Calculs6Structure de contrôle : Les conditionnelles
L'instruction `if`Le mot-clé `else`Le mot-clé `else if`Masquage de variable dans `if`Initialisation des variablesL'instruction `switch``switch` avec expressions`switch` sans expressionLe mot-clé `fallthrough`Récapitulatif - Prendre des décisions9Pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de variables pointeursL'opérateur d'adresseDéréférencement de pointeursUtiliser des pointeurs dans les fonctionsPointeurs NilRécapitulatif - Comprendre les pointeurs12Types composites : Maps
Introduction aux MapsDéclaration de littéraux de MapCréation de Maps avec `make`Ajout et mise à jour de paires clé-valeurAccès aux valeurs d'une MapVérification de l'existence d'une cléSuppression d'entrées de MapTaille d'une MapItération sur les MapsRécapitulatif - Stockage clé-valeur