키, 공백, 숫자 및 개행으로 구성된 줄이있는 파일을 구문 분석하려고합니다.스캐너마다 한 줄에 여러 개의 토큰을 사용하는 것이 더 좋은 방법일까요?
내 코드는 작동하지만 나에게 올바르게 냄새를 맡지 않습니다. 스캐너를 사용하는 더 좋은 방법이 있습니까? 특히, for-loop 내부에 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)
}
}
. 반복마다 하나의 그룹화를 보장하기 때문에 새 라인에서 분리하는 것이 더 관용적 인 것처럼 보입니다. 그런 다음 반복 내에서'strings.Split()'을 사용하십시오. 다른 사람들이 읽기 쉽고 논리가 무엇을하는지 이해하는 것처럼 관용적입니다. – eduncan911