SHORT QUESTION:
Is there a way of doing something like this?
for i := 0; key, value := range something; i++ {
...
}
Or do I have to do it like this?
i := 0
for key, value := range something {
...
i++
}
EDITED: QUESTION REAL WORLD REASON:
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
}
Could I inline the i
declaration in the third for
?
You just need to declare var i
in right place
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
}
You can play here https://play.golang.org/p/3XXTuwoUsFw