Maison  >  Article  >  développement back-end  >  Portée des variables dans le cas de commutation

Portée des variables dans le cas de commutation

WBOY
WBOYavant
2024-02-09 09:00:21616parcourir

switch case 内变量的范围

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.

Contenu des questions

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 没有 {}.
  • Java est différent.

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 switchinitialization.

Question :

  1. Pouvez-vous confirmer que dans Golang, la portée de la variable à l'intérieur du commutateur case est locale au cas lui-même ?
  2. Est-ce un design spécial ? Chaque case都没有{} mentionné ci-dessus n'a pas de {}.

Solution de contournement

Spécification : Bloc :

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer