Dans Go, la bibliothèque standard fournit des fonctions brutes de bas niveau pour les opérations readline, qui renvoient des tableaux d'octets. Existe-t-il une méthode plus pratique pour obtenir une chaîne à partir d'une fonction readline ?
Solution idiomatique
L'approche idiomatique pour lire une ligne en chaîne dans Go consiste à utiliser le bufio. Structure du lecteur. La fonction Readln() renvoie une ligne (sans la nouvelle ligne n de fin) du lecteur tampon d'entrée.
import ( "bufio" "fmt" "os" ) 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 } func main() { 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 fonction lit les lignes d'un fichier, supprime le caractère de nouvelle ligne (n) et imprime chaque ligne dans la console.
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!