Maison > Article > développement back-end > Pouvez-vous échapper à la boucle d'entrée Go `bufio.Scanner` sans vérification conditionnelle ?
Échapper à la boucle d'entrée sans vérification conditionnelle
Dans Go, le bufio.Scanner vous permet de lire les entrées de la console ligne par ligne. Cependant, la fonction Scan standard passe automatiquement au jeton suivant, ce qui peut entraîner une boucle infinie s'il n'y a pas de condition de rupture explicite.
La documentation indique que Scan renvoie false lorsqu'il atteint la fin de l'entrée. Cela signifie-t-il que vous pouvez ignorer la vérification conditionnelle pour sortir de la boucle ?
Mauvaise interprétation de la documentation
Malheureusement, vous avez mal interprété la documentation. La fonction de division par défaut utilisée par le scanner est ScanLines, qui renvoie chaque ligne de texte sous la forme d'un jeton distinct.
Comportement de ScanLines
ScanLines a deux comportements clés :
Briser la boucle
Par conséquent, une ligne vide à elle seule ne signale pas la fin de la saisie. La boucle ne sera interrompue que lorsque vous atteindrez une condition de fin de fichier (EOF), généralement déclenchée par des actions telles que appuyer sur Ctrl-D.
Solution
Pour échapper la boucle d'entrée sans clause if, vous devez soit :
Cependant, il est généralement recommandé de conserver la vérification conditionnelle pour plus de simplicité et pour éviter les cas extrêmes potentiels.
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!