Heim > Backend-Entwicklung > Golang > Warum erhalte ich bei meiner Switch-Anweisung einen Syntaxfehler?

Warum erhalte ich bei meiner Switch-Anweisung einen Syntaxfehler?

王林
Freigeben: 2024-02-09 20:21:43
nach vorne
1194 Leute haben es durchsucht

为什么我的 switch 语句会出现语法错误?

Der PHP-Editor Xinyi stößt beim Schreiben von Code häufig auf verschiedene Probleme und Verwirrungen. Eines der häufigsten Probleme sind Syntaxfehler bei der Verwendung von Switch-Anweisungen. Dies kann die ordnungsgemäße Ausführung des Codes verhindern und Probleme bei der Entwicklung verursachen. Warum tritt dieser Fehler auf? In diesem Artikel beantworten wir diese Frage und stellen einige Lösungen bereit, die Ihnen helfen, Switch-Anweisungen besser zu verstehen und zu verwenden und Syntaxfehler zu vermeiden. Lass uns einen Blick darauf werfen!

Frageninhalt

Ich muss eine Zeichenfolgenvariable vom Kanal in der Switch-Anweisung abrufen.

Go-Version go1.19.6 Linux/AMD64 .test.go:12:12: Syntaxfehler: unerwartet: =, erwartet:

package main

import (
    "fmt"
)

func main() {
    writeMsgs := make(chan string)
    go sendMsgs(writeMsgs)
    for {
        switch{
        case msg := <-writeMsgs:
            fmt.Println(msg)
        }
    }
}

func sendMsgs(writeMsgs chan string) {
    for i:=0;i<5;i++ {
        writeMsgs<-"Test"
    }
    close(writeMsgs)
}
Nach dem Login kopieren

Ich habe auf mehrere Tutorials verwiesen, kann aber nicht herausfinden, was falsch ist.

Workaround

go erlaubt keine Kanalkommunikation, da switch 情况条件,您必须使用 selectstattdessen das Konstrukt sehr ähnlich ist.

Die Golang-Select-Anweisung ähnelt der Switch-Anweisung und wird für Mehrkanaloperationen verwendet. Diese Anweisung blockiert, bis alle bereitgestellten Fälle bereit sind.

In Ihrem Fall ist es so

func main() {
    writeMsgs := make(chan string)
    go sendMsgs(writeMsgs)
    for {
        select {
        case msg := <-writeMsgs:
            fmt.Println(msg)
        }
    }
}
Nach dem Login kopieren

Hier kannst du es ausprobieren.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich bei meiner Switch-Anweisung einen Syntaxfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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