我試圖用包含一個鍵,一個空格,一個數字和一個換行符的行來解析一個文件。更好的方法使用掃描儀每行多個標記?
我的代碼有效,但它並不適合我。有沒有更好的方式來使用掃描儀?特別是,我不喜歡在for循環中沒有任何保護的情況下使用Scan()。
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)
}
}
我不會ScanWords分裂。似乎在換行符上分割會更加習慣,因爲這確保了每次迭代的1個分組。然後在迭代中使用'strings.Split()'。通俗易懂,易於被他人閱讀,並理解邏輯在做什麼。 – eduncan911