Go Instructions de commutation


Exemple

Une simple déclaration de switch :

switch a + b {
case c:
    // do something
case d:
    // do something else
default:
    // do something entirely different
}

L'exemple ci-dessus est équivalent à:

if a + b == c {
    // do something
} else if a + b == d {
    // do something else
} else {
    // do something entirely different
}

La clause default est facultative et sera exécutée si et seulement si aucun des cas ne se compare à true, même si cela ne semble pas le dernier, ce qui est acceptable. Ce qui suit est sémantiquement identique au premier exemple:

switch a + b {
default:
    // do something entirely different
case c:
    // do something
case d:
    // do something else
}

Cela peut être utile si vous avez l'intention d'utiliser l'instruction fallthrough dans la clause default , qui doit être la dernière instruction d'un cas et provoque l'exécution du programme au cas suivant:

switch a + b {
default:
    // do something entirely different, but then also do something
    fallthrough
case c:
    // do something
case d:
    // do something else
}

Une expression de commutateur vide est implicitement true :

switch {
case a + b == c:
    // do something
case a + b == d:
    // do something else
}

Les instructions switch prennent en charge une instruction simple similaire aux instructions if :

switch n := getNumber(); n {
case 1:
    // do something
case 2:
    // do something else
}

Les cas peuvent être combinés dans une liste séparée par des virgules s'ils partagent la même logique:

switch a + b {
case c, d:
    // do something
default:
    // do something entirely different
}