L'éditeur php Yuzai vous présentera la portée des variables dans l'instruction switch case. Dans l'instruction switch case, la portée de la variable est limitée au bloc de cas actuel et n'affectera pas les autres blocs de cas. Cela signifie que même si le même nom de variable est utilisé dans différents blocs de cas, ils sont indépendants les uns des autres et ne provoqueront pas de conflits. Cette fonctionnalité nous permet d'utiliser le même nom de variable dans différents blocs de cas sans nous soucier des erreurs ou des conflits. Par conséquent, lors de l'écriture d'instructions switch case, nous pouvons utiliser les variables de manière plus flexible et améliorer la lisibilité et la maintenabilité du code.
package main import "fmt" func main() { x := 10 switch x { case 0: y := 'a' fmt.Printf("%c\n", y) case 1: // y = 'b' // this can't compile, y := 'b' fmt.Printf("%c\n", y) default: y := '-' fmt.Printf("%c\n", y) } }
Il semble que le fichier local de chaque case
中的 y
都是包含 case
ne soit pas visible par les autres cas.
Pour autant que je sache :
{}
可以创建本地范围,但每个 case
没有 {}
. J’ai vérifié en ligne et je n’ai pas pu obtenir une définition claire. Je sais que nous pouvons déclarer des variables de portée de commutateur dans la section switch
的 initialization
.
Question :
case
est locale au cas lui-même ? case
都没有{}
mentionné ci-dessus n'a pas de {}
. Comme vous pouvez le voir dans la spécification : chaque clause (par exemple case
)充当隐式块,无需显式使用 {}
) agit comme un bloc implicite sans utilisation explicite de {}
.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!