Maison >développement back-end >Golang >Comment la fonction « Readln » de Go peut-elle simplifier la lecture de lignes idiomatiques ?

Comment la fonction « Readln » de Go peut-elle simplifier la lecture de lignes idiomatiques ?

DDD
DDDoriginal
2024-12-05 17:13:17689parcourir

How Can Go's `Readln` Function Simplify Idiomatic Line Reading?

Lecture de lignes idiomatiques en Go avec Readln

Lorsque vous travaillez avec des opérations d'entrée/sortie dans Go, il est souvent nécessaire de lire une ligne de texte sous forme de chaîne. Cependant, les fonctions readline de la bibliothèque standard renvoient principalement des tableaux d'octets.

Une solution pratique : la fonction Readln

La fonction Readln fournit un moyen pratique de convertir un tableau d'octets de readline en chaîne. Voici comment cela fonctionne :

<br>import (</p>
<pre class="brush:php;toolbar:false">"bufio"
"fmt"
"os"

)

// Readln renvoie une seule ligne (sans la terminaison n)
// du lecteur tampon d'entrée.
// Une erreur est renvoyée s'il y a une erreur avec le
// lecteur tamponné.
func Readln(r *bufio.Reader) (string, error) {
var (

isPrefix bool = true
err error = nil
line, ln []byte

)

for isPrefix && err == néant {

line, isPrefix, err = r.ReadLine()
ln = append(ln, line...)

}

retour string(ln), err
}

func main() {
f, err := os.Open("filename.txt")
if err != nil {

fmt.Println("error opening file= ", err)
os.Exit(1)

}

r := bufio.NewReader(f)

pour la ligne, euh := Lireln(r); err == nul ; ligne, err = Readln(r) {

fmt.Println(line)

}

if err != io.EOF {

fmt.Println("error reading file= ", err)
os.Exit(1)

}
}

Exemple d'utilisation

La fonction main() ouvre un fichier, crée un lecteur tamponné à partir de celui-ci, puis utilise la fonction Readln pour parcourir chaque ligne du fichier. La fonction Readln renvoie à la fois la ligne sous forme de chaîne et une valeur d'erreur. Le programme continue de lire les lignes jusqu'à ce que la fin du fichier soit atteinte ou qu'une erreur se produise.

Cette approche simplifie la lecture des lignes dans Go, offrant une méthode plus idiomatique et conviviale pour obtenir des chaînes à partir de l'entrée.

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!

Déclaration:
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