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
Linda HamiltonOriginal
2024-12-26 19:13:14854Durchsuche

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')

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()

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)

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!

Stellungnahme:
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