Umfang der Variablen innerhalb des Schaltergehäuses

WBOY
Freigeben: 2024-02-09 09:00:21
nach vorne
641 Leute haben es durchsucht

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)
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!