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 }
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) }
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!