chan est une chose très importante en golang, utilisé pour la communication goroutine , car les programmes golang auront inévitablement plusieurs goroutines, comment synchroniser ces goroutines est très important.
Lors de l'utilisation du chan, il existe plusieurs expériences : (Apprentissage recommandé : GO )
Tout d'abord, ce sera toujours un symbole & lt; Lire ou écrire, par exemple v,ok := <-c est pour la lecture, et c <- v est pour l'écriture. Deuxièmement, lors de la lecture, s'il n'y a pas d'accord, il peut également être lu. Cependant, s'il est fermé, il peut aussi être lu, il n'y a pas d'affectation ; si vous voulez savoir s'il est fermé, vous devez ajouter ok, c'est-à-dire à moins que chan ne soit jamais fermé, sinon v,ok := < -c doit être utilisé pour la lecture au lieu de v := < ;-c way. Encore une fois, vous ne pouvez pas écrire sur un canal fermé, vous devez donc généralement utiliser un canal de signal (généralement le tampon est 1) pour déterminer s'il faut écrire ou abandonner. Utilisez select pour déterminer si l'écriture est réussie. , ou il se ferme et doit abandonner l'écriture. Enfin, si chan a des données après la fermeture, ok sera toujours vrai, et ce sera faux jusqu'à ce que chan n'ait plus de données.Lorsqu'un canal est fermé, la récupération ne bloquera pas, mais renverra une valeur nulle
package main import "fmt" func main() { c := make(chan int, 5) c <- 123 close(c) fmt.Println(<-c) fmt.Println(<-c) }
Sortie
123 0
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!