I'm developing in golang and I run the following for loop:
// Define Initial Value
i := 0
for {
// Get Random data based on iteration
data, i := GiveRandomData(i)
// Save to database
response, err := SaveToDatabase(data)
if err != nil { log.Fatal(err) }
fmt.Println(response)
}
However, when compiling this program, I get the following error:
.\main.go:26: i declared and not used
The Golang compiler doesn't seem to recognise that the i variable is given back to the function in the next loop. Inside this function, the I variable changes value.
What should I do to get rid of this compilation error or to let golang understand that this variable is NOT unused but used in the next iteration of this endless for loop?
The Golang compiler doesn't seem to recognise that the i variable is given back to the function in the next loop. Inside this function, the I variable changes value.
No, i
does not change value; :=
declares a new i
. (Go allows you to do this because data
is also new.) To assign to it instead, you’ll need to declare data
separately:
var data RandomDataType
data, i = GiveRandomData(i)
Or give the new i
a temporary name:
data, next := GiveRandomData(i)
i = next
来源:https://stackoverflow.com/questions/45137897/use-of-variable-in-for-loop-not-recognized-in-golang