Ich versuche, eine Datei mit Zeilen zu analysieren, die aus einem Schlüssel, einem Leerzeichen, einer Zahl und dann einem Zeilenumbruch bestehen.eine bessere Möglichkeit, Scanner für mehrere Token pro Zeile zu verwenden?
Mein Code funktioniert, aber es riecht nicht richtig zu mir. Gibt es eine bessere Möglichkeit, den Scanner zu verwenden? Insbesondere mag ich es nicht, den Scan() innerhalb der for-Schleife ohne Schutz zu haben.
func TestScanner(t *testing.T) {
const input = `key1 62128128\n
key2 8337182720\n
key3 7834959872\n
key4 18001920\n
key5 593104896\n`
scanner := bufio.NewScanner(strings.NewReader(input))
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
key := scanner.Text()
scanner.Scan()
value := scanner.Text();
fmt.Printf("k: %v, v: %v\n", key, value)
}
}
ich nicht auf scanwords aufgeteilt würde. scheint es idiomatischer zu sein, sich auf Zeilenumbrüche aufzuteilen, da dies eine Gruppierung pro Iteration sicherstellt. Dann innerhalb der Iteration mit 'strings.Split()'. idiomatisch wie in einfacher zu lesen von anderen und zu verstehen, was die Logik tut. – eduncan911