L'éditeur PHP Xinyi rencontre souvent divers problèmes et confusions lors de l'écriture de code. L'un des problèmes courants concerne les erreurs de syntaxe lors de l'utilisation des instructions switch. Cela peut empêcher le code de fonctionner correctement et entraîner des problèmes de développement. Alors, pourquoi cette erreur se produit-elle ? Dans cet article, nous répondrons à cette question et vous proposerons quelques solutions pour vous aider à mieux comprendre et utiliser les instructions switch et à éviter les erreurs de syntaxe. Nous allons jeter un coup d'oeil!
J'ai besoin d'obtenir une variable de chaîne du canal dans l'instruction switch.
go version go1.19.6 linux/amd64 .test.go:12:12 : Erreur de syntaxe : inattendu : =, attendu :
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) }
J'ai croisé plusieurs tutoriels mais je n'arrive pas à comprendre ce qui ne va pas.
go n'autorise pas la communication par canal car switch
情况条件,您必须使用 select
au lieu de cela, la construction est très similaire.
L'instruction golang select est similaire à l'instruction switch et est utilisée pour les opérations multicanaux. Cette instruction se bloque jusqu'à ce que les cas fournis soient prêts.
Dans votre cas, c'est le cas
func main() { writeMsgs := make(chan string) go sendMsgs(writeMsgs) for { select { case msg := <-writeMsgs: fmt.Println(msg) } } }
Ici vous pouvez l'essayer.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!