Ich habe einen Bufio-Scanner auf einem StringReader. Nachdem ich eine bestimmte Zeile am Scannerausgang erreicht habe, möchte ich bis zum Ende des Lesers lesen. Gibt es eine Möglichkeit, dies auf eine einfachere Art und Weise als den kommentierten Code zu erreichen?Golang-Scanner bis Ende des Lesers lesen
s := `1
2
3
4
5
6
7`
beyond5 := ""
scanner := bufio.NewScanner(strings.NewReader(s))
for scanner.Scan() {
if strings.Contains(scanner.Text(), "5") {
// Read all lines until EOF from scanner
// and store in beyond5
// for scanner.Scan() {
// beyond5 += scanner.Text()
// beyond5 += "\n"
// }
break
}
}
log.Println(beyond5)
Sie können vielleicht eine benutzerdefinierte Split-Funktion verwenden: https://play.golang.org/p/sr1pUIR3NC Dies ist jedoch noch nicht vollständig EOF suchen durchführen kann und es nicht gespalten auf '\ n' nicht mehr. – abhink