Heim > Backend-Entwicklung > Golang > Wie kann ich in Go effizient eine Zeile in einen String einlesen?

Wie kann ich in Go effizient eine Zeile in einen String einlesen?

DDD
Freigeben: 2024-12-21 11:39:11
Original
679 Leute haben es durchsucht

How Can I Efficiently Read a Line into a String in Go?

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
}
Nach dem Login kopieren

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)
}
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage