Maison >développement back-end >Golang >ReadString vs ReadLine in Go : quand devez-vous utiliser chacun pour la saisie de texte ?
reader.ReadString vs. ReadLine
Dans Go, bufio.Reader propose deux méthodes pour lire du texte à partir d'une source d'entrée : ReadString et ReadLine . Ces méthodes diffèrent dans la manière dont elles gèrent le caractère de nouvelle ligne à la fin d'une ligne :
ReadString lit une chaîne jusqu'à ce qu'elle rencontre un caractère délimiteur spécifié. Par défaut, le délimiteur est n (nouvelle ligne), ce qui signifie qu'il lit des lignes entières de texte. Cependant, cela ne supprime pas le délimiteur de la chaîne renvoyée. Dans le code mentionné dans la question :
text, _ := reader.ReadString('\n')
La variable texte contiendra la chaîne d'entrée incluant le caractère de nouvelle ligne. Ainsi, lors de la recherche de "Alice" ou "Bob", le caractère de nouvelle ligne à la fin de l'entrée provoque l'échec de la comparaison.
ReadLine lit une ligne de texte, à l'exclusion du caractère de nouvelle ligne. Il renvoie une tranche d'octets contenant les caractères de la ligne et une valeur d'erreur indiquant les problèmes rencontrés. Pour convertir la tranche d'octets en chaîne, elle doit être convertie comme suit :
text, _, _ := reader.ReadLine()
En utilisant ReadLine au lieu de ReadString, le caractère de nouvelle ligne n'est pas inclus dans la variable de texte, résolvant le problème des comparaisons incorrectes. .
Une autre alternative consiste à couper manuellement le caractère de nouvelle ligne de la chaîne d'entrée à l'aide de l'option Fonction strings.TrimSpace :
text = strings.TrimSpace(text)
Cela supprime tous les caractères d'espacement de début et de fin, y compris la nouvelle ligne, garantissant une comparaison claire.
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!