Pourquoi input.Text() est-il évalué dans le Goroutine principal ?
Dans Go, les arguments passés à une fonction invoquée en même temps que le go mot-clé sont évalués immédiatement. Cela diffère des appels de fonction réguliers où l'évaluation des arguments a lieu lorsque la fonction est réellement exécutée. Dans le cas d'echoServer, l'argument input.Text() est évalué dans la goroutine principale au moment de l'exécution de l'instruction go.
Raison de l'évaluation immédiate
L'évaluation immédiate des arguments de fonction dans les goroutines garantit ce qui suit :
Exemple d'illustration
Considérez l'exemple suivant :
Si L'évaluation input.Text() a eu lieu lors de l'exécution de l'instruction go, la valeur de i serait 2 en raison de l'évaluation immédiate. Cependant, si elle avait été évaluée lors de l'exécution d'une goroutine, la variable i aurait été incrémentée et aurait imprimé 3.
Conclusion
L'évaluation immédiate des arguments de fonction dans les goroutines est un aspect essentiel du modèle de concurrence de Go. Il garantit l'exactitude, l'efficacité et le déterminisme des programmes concurrents.
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!