我试图用for循环逐行读取Golang中的CSV文件,该循环需要一个带if语句的中断,以查看读取文件的错误是否为EOF。当我可以在Java中读取例如while条件循环中的行并同时检查EOF错误时,我发现此语法相当不必要。我认为可以在for循环中声明一个变量,而且我确定可以使用Golang中的if语句来做到这一点。正在执行:
if v := 2; v > 1{
fmt.Println("2 is better than 1")
}
这里的第一段代码是我知道要在程序中工作的代码。
reader := csv.NewReader(some_file)
for {
line, err := reader.Read()
if err == io.EOF {
break
}
//do data parsing from your line here
}
我不知道第二个摘录在概念上是否可行,或者在语法上只是不正确。
reader := csv.NewReader(some_file)
for line, err := reader.Read(); err != io.EOF {
//do data parsing from your line here
}
想要一些说明/好处/惯例以一种方式进行,谢谢:)
答案 0 :(得分:0)
这是写简单语句的常规方法,而不是冗长而复杂的语句,不是吗?
因此,我认为第一版比第二版更传统。此外,第二版中的for
循环的方式不正确。如果您想使用它,请按照以下内容或您想要的任何方式对其进行修复:
for line, err := reader.Read(); err != io.EOF; line, err = reader.Read() {
//do data parsing from your line here
}