在Golang中无法识别for循环中变量的使用

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