Rumah >pembangunan bahagian belakang >Golang >Mengapa saya mendapat ralat sintaks dengan pernyataan suis saya?

Mengapa saya mendapat ralat sintaks dengan pernyataan suis saya?

王林
王林ke hadapan
2024-02-09 20:21:431178semak imbas

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

Editor PHP Xinyi sering menghadapi pelbagai masalah dan kekeliruan semasa menulis kod. Salah satu masalah biasa ialah ralat sintaks apabila menggunakan pernyataan suis. Ini boleh menghalang kod daripada berjalan dengan betul dan menyebabkan masalah untuk pembangunan. Jadi, mengapa ralat ini berlaku? Dalam artikel ini, kami akan menjawab soalan ini dan menyediakan beberapa penyelesaian untuk membantu anda memahami dengan lebih baik dan menggunakan pernyataan suis serta mengelakkan ralat sintaks. Mari lihat!

Kandungan soalan

Saya perlu mendapatkan pembolehubah rentetan daripada saluran dalam pernyataan suis.

go versi go1.19.6 linux/amd64 .test.go:12:12: Ralat sintaks: tidak dijangka: =, dijangka:

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

Saya merujuk silang berbilang tutorial tetapi tidak dapat mengetahui apa yang salah.

Penyelesaian

go tidak membenarkan komunikasi saluran kerana switch 情况条件,您必须使用 selectsebaliknya konstruknya sangat serupa.

Pernyataan pilih golang adalah serupa dengan pernyataan suis dan digunakan untuk operasi berbilang saluran. Kenyataan ini menyekat sehingga mana-mana kes yang disediakan sedia.

Dalam kes anda adalah

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

Di sini anda boleh mencubanya.

Atas ialah kandungan terperinci Mengapa saya mendapat ralat sintaks dengan pernyataan suis saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam