Maison > développement back-end > Golang > Comment puis-je lire efficacement une ligne dans une chaîne avec Go ?

Comment puis-je lire efficacement une ligne dans une chaîne avec Go ?

DDD
Libérer: 2024-12-21 11:39:11
original
679 Les gens l'ont consulté

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

Lire efficacement une ligne vers une chaîne dans Go

La bibliothèque standard Go fournit des fonctions de bas niveau pour lire les entrées, renvoyant des tableaux d'octets au lieu de cordes. Pour faciliter l'utilisation, nous explorons une approche alternative pour obtenir une chaîne directement à partir d'une fonction readline.

Fonction Readln personnalisée

Pour simplifier les opérations de lecture, nous créons une fonction personnalisée Fonction Readln qui lit une seule ligne (à l'exclusion du caractère de nouvelle ligne) à partir d'un 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
}
Copier après la connexion

Exemple d'utilisation

En utilisant la fonction Readln, nous pouvons lire les lignes d'un fichier et les imprimer sur la sortie standard :

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)
}
Copier après la connexion

Cette approche évite d'avoir à convertir manuellement les tableaux d'octets en chaînes, rationalisant ainsi le processus d'obtention de chaînes à partir des fonctions readline en Go.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal