php小編新一在寫程式碼時,常常會遇到各種問題和困惑。其中一個常見的問題是在使用 switch 語句時出現語法錯誤。這可能會使程式碼無法正常運行,給開發帶來困擾。那麼,為什麼會出現這種錯誤呢?在本文中,我們將解答這個問題,並提供一些解決方案,幫助您更好地理解和使用 switch 語句,避免語法錯誤的發生。讓我們一起來看看吧!
我需要在 switch 語句中從通道取得字串變數。
go版本go1.19.6 linux/amd64 .\test.go:12:12:語法錯誤:意外:=,期待:
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) }
我交叉引用了多個教程,但不知道哪裡出了問題。
go 不允許通道通信,因為switch
情況條件,您必須使用select
相反,構造非常相似。
golang select語句類似於switch語句,用於多通道運算。此語句將阻塞,直到提供的任何案例準備就緒為止。
在你的情況下是
func main() { writeMsgs := make(chan string) go sendMsgs(writeMsgs) for { select { case msg := <-writeMsgs: fmt.Println(msg) } } }
在這裡你可以試試看。
以上是為什麼我的 switch 語句會出現語法錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!