Heim >Backend-Entwicklung >Golang >Wie kann ich in Go effizient eine Zeile in einen String einlesen?
Effizientes Lesen einer Zeile in einen String in Go
Die Go-Standardbibliothek bietet Low-Level-Funktionen zum Lesen von Eingaben und gibt stattdessen Byte-Arrays zurück Saiten. Zur Vereinfachung der Verwendung untersuchen wir einen alternativen Ansatz zum direkten Abrufen einer Zeichenfolge aus einer Readline-Funktion.
Benutzerdefinierte Readln-Funktion
Um Readline-Vorgänge zu vereinfachen, erstellen wir eine benutzerdefinierte Readln-Funktion, die eine einzelne Zeile (mit Ausnahme des Zeilenumbruchzeichens) aus einer bereitgestellten Datei liest bufio.Reader:
func Readln(r *bufio.Reader) (string, error) { var ( isPrefix bool = true err error = nil line, ln []byte ) for isPrefix && err == nil { line, isPrefix, err = r.ReadLine() ln = append(ln, line...) } return string(ln), err }
Beispielverwendung
Mit der Readln-Funktion können wir Zeilen aus einer Datei lesen und auf stdout drucken:
f, err := os.Open(fi) if err != nil { fmt.Println("error opening file= ", err) os.Exit(1) } r := bufio.NewReader(f) s, e := Readln(r) for e == nil { fmt.Println(s) s, e = Readln(r) }
Dieser Ansatz vermeidet die Notwendigkeit, Byte-Arrays manuell in Strings zu konvertieren, wodurch der Prozess des Abrufens von Strings aus Readline optimiert wird Funktionen in Go.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go effizient eine Zeile in einen String einlesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!