范围循环具有更多变量

时间:2018-12-18 17:30:51

标签: for-loop go

简短问题:

有没有办法做这样的事情?

for i := 0; key, value := range something; i++ {
    ...
}

还是我必须这样做?

i := 0

for key, value := range something {
    ...
    i++
}

编辑:现实世界问题:

func parseData(xlFile *xlsx.File, parsed [][]string) [][]string {
    i := 0

    for _, sheet := range xlFile.Sheets {
        for _, row := range sheet.Rows {
            parsed = append(parsed, []string{})

            for _, cell := range row.Cells {
                parsed[i] = append(parsed[i], cell.String())
            }

            i++
        }
    }

    return parsed
}

我可以在第三个i中插入for声明吗?

1 个答案:

答案 0 :(得分:1)

您只需要在正确的位置声明var i

func parseData(xlFile *xlsx.File, parsed [][]string) [][]string {

    for _, sheet := range xlFile.Sheets {
        for i, row := range sheet.Rows {
            parsed = append(parsed, []string{})

            for _, cell := range row.Cells {
                parsed[i] = append(parsed[i], cell.String())
            }
        }
    }

    return parsed
}

您可以在这里https://play.golang.org/p/3XXTuwoUsFw