登录
首页 >  Golang >  Go问答

未使用的变量在 Go 中的 for 循环外

来源:stackoverflow

时间:2024-02-17 21:45:19 141浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《未使用的变量在 Go 中的 for 循环外》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!

问题内容

我无法编译以下 go 代码。我不断收到一个错误,表示未使用变量“header”。我正在尝试读取并处理 csv 文件。该文件是逐行读取的,因此我需要将标题保存到“循环外”变量中,以便在处理 csv 行时参考。有人知道我作为 go 新用户做错了什么吗?

func main() {
    ...
    inputData := csv.NewReader(file)
    var header []string
    //keep reading the file until EOF is reached
    for j := 0; ; j++ {
        i, err := inputData.Read()
        if err == io.EOF {
            break
        }
        if j == 0 {
            header = i
        } else {
            // Business logic in here
            fmt.Println(i)
            //TODO convert to JSON
            //TODO send to SQS
        }
    }
}

正确答案


您可以分配一个空白标识符,以便能够编译代码,例如:_ = header。例如:

package main

import (
    "encoding/csv"
    "fmt"
    "io"
    "strings"
)

func main() {

    in := `first_name,last_name,username
"Rob","Pike",rob
Ken,Thompson,ken
"Robert","Griesemer","gri"
`
    file := strings.NewReader(in)
    inputData := csv.NewReader(file)
    var header []string
    //keep reading the file until EOF is reached
    for j := 0; ; j++ {
        i, err := inputData.Read()
        if err == io.EOF {
            break
        }
        if j == 0 {
            header = i
        } else {
            // Business logic in here
            fmt.Println(i)
            //TODO convert to JSON
            //TODO send to SQS
        }
    }

    _ = header
}

https://go.dev/play/p/BrmYU2zAc9f

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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