登录
首页 >  Golang >  Go问答

Golang 一行 for 循环

来源:stackoverflow

时间:2024-04-18 14:12:35 172浏览 收藏

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《Golang 一行 for 循环》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习!

问题内容

我试图使用 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
}

想要一些以某种方式而不是另一种方式进行操作的澄清/好处/惯例,谢谢:)


解决方案


这是编写更简单的语句而不是冗长、复杂的语句的传统方法,不是吗?

所以,我认为第一个版本比第二个版本更传统。此外,第二个版本中的 for 循环不正确。如果您想使用它,请按照以下方式或您希望的方式修复它:

for line, err := reader.Read(); err != io.EOF; line, err = reader.Read() {
    //do data parsing from your line here
}

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Golang 一行 for 循环》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>