Maison >développement back-end >Golang >ReadString vs ReadLine in Go : quand devez-vous utiliser chacun pour la saisie de texte ?

ReadString vs ReadLine in Go : quand devez-vous utiliser chacun pour la saisie de texte ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-26 19:13:14846parcourir

ReadString vs. ReadLine in Go: When Should You Use Each for Text Input?

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

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

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. .

Solution alternative : couper la chaîne

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn