Heim > Backend-Entwicklung > Golang > ReadString vs. ReadLine in Go: Wann sollten Sie beide für die Texteingabe verwenden?

ReadString vs. ReadLine in Go: Wann sollten Sie beide für die Texteingabe verwenden?

Linda Hamilton
Freigeben: 2024-12-26 19:13:14
Original
847 Leute haben es durchsucht

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

reader.ReadString vs. ReadLine

In Go bietet bufio.Reader zwei Methoden zum Lesen von Text aus einer Eingabequelle: ReadString und ReadLine . Diese Methoden unterscheiden sich darin, wie sie mit dem Newline-Zeichen am Ende einer Zeile umgehen:

ReadString

ReadString liest eine Zeichenfolge, bis sie auf ein angegebenes Trennzeichen trifft. Standardmäßig ist das Trennzeichen n (Newline), was bedeutet, dass ganze Textzeilen gelesen werden. Das Trennzeichen wird jedoch nicht aus der zurückgegebenen Zeichenfolge entfernt. Im in der Frage erwähnten Code:

text, _ := reader.ReadString('\n')
Nach dem Login kopieren

Die Textvariable enthält die Eingabezeichenfolge einschließlich des Zeilenumbruchzeichens. Wenn also nach „Alice“ oder „Bob“ gesucht wird, führt das Zeilenumbruchzeichen am Ende der Eingabe dazu, dass der Vergleich fehlschlägt.

ReadLine

ReadLine liest eine Textzeile, mit Ausnahme der Newline-Zeichen. Es gibt ein Byte-Slice zurück, das die Zeichen in der Zeile und einen Fehlerwert enthält, der auf aufgetretene Probleme hinweist. Um das Byte-Slice in eine Zeichenfolge umzuwandeln, muss es wie folgt umgewandelt werden:

text, _, _ := reader.ReadLine()
Nach dem Login kopieren

Durch die Verwendung von ReadLine anstelle von ReadString ist das Newline-Zeichen nicht in der Textvariablen enthalten, wodurch das Problem falscher Vergleiche behoben wird .

Alternative Lösung: Zeichenfolge abschneiden

Eine andere Alternative besteht darin, das Zeilenumbruchzeichen manuell aus der Eingabezeichenfolge abzuschneiden, indem Sie die verwenden strings.TrimSpace-Funktion:

text = strings.TrimSpace(text)
Nach dem Login kopieren

Dadurch werden alle führenden und nachfolgenden Leerzeichen, einschließlich der neuen Zeile, entfernt, um einen sauberen Vergleich zu gewährleisten.

Das obige ist der detaillierte Inhalt vonReadString vs. ReadLine in Go: Wann sollten Sie beide für die Texteingabe verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage