Heim  >  Artikel  >  Backend-Entwicklung  >  Umfang der Variablen innerhalb des Schaltergehäuses

Umfang der Variablen innerhalb des Schaltergehäuses

WBOY
WBOYnach vorne
2024-02-09 09:00:21614Durchsuche

switch case 内变量的范围

Der PHP-Editor Yuzai stellt Ihnen den Umfang der Variablen in der Switch-Case-Anweisung vor. In der Switch-Case-Anweisung ist der Gültigkeitsbereich der Variablen auf den aktuellen Case-Block beschränkt und hat keine Auswirkungen auf andere Case-Blöcke. Dies bedeutet, dass selbst wenn derselbe Variablenname in verschiedenen Case-Blöcken verwendet wird, diese unabhängig voneinander sind und keine Konflikte verursachen. Mit dieser Funktion können wir denselben Variablennamen in verschiedenen Case-Blöcken verwenden, ohne uns Gedanken über Fehler oder Konflikte machen zu müssen. Daher können wir beim Schreiben von Switch-Case-Anweisungen Variablen flexibler bedienen und die Lesbarkeit und Wartbarkeit des Codes verbessern.

Frageninhalt

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)
    }
}

Es scheint, dass die lokale Datei jedes case 中的 y 都是包含 case für andere Fälle nicht sichtbar ist. Soweit ich weiß:

  • {} 可以创建本地范围,但每个 case 没有 {}.
  • Java ist anders.

Ich habe online nachgeschaut und konnte keine klare Definition finden. Ich weiß, dass wir im Abschnitt switchinitialization Switch-Scope-Variablen deklarieren können.

Frage:

  1. Können Sie bestätigen, dass in Golang der Variablenbereich innerhalb des Schalters case lokal für den Fall selbst ist?
  2. Ist das ein spezielles Design? Jedes der oben genannten case都没有{} hat keinen {}.

Problemumgehung

Spezifikation: Blockieren:

Wie Sie in der Spezifikation sehen können: Jede Klausel (z. B. case)充当隐式块,无需显式使用 {}) fungiert als impliziter Block ohne explizite Verwendung von {}.

Das obige ist der detaillierte Inhalt vonUmfang der Variablen innerhalb des Schaltergehäuses. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen