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

The*_*ard 2 for-loop compiler-errors go unused-variables

我正在开发golang,我运行以下for循环:

// 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)
}
Run Code Online (Sandbox Code Playgroud)

但是,在编译此程序时,我收到以下错误:

.\ main.go:26:我声明并且没有使用过

Golang编译器似乎没有认识到i变量在下一个循环中被赋予回函数.在此函数中,I变量更改值.

我该怎么做才能摆脱这个编译错误或者让golang明白这个变量是不是未被使用但是在这个无限循环的下一次迭代中使用了?

Ry-*_*Ry- 8

Golang编译器似乎没有认识到i变量在下一个循环中被赋予回函数.在此函数中,I变量更改值.

不,i不改变价值; :=宣布一个新的i.(Go允许你这样做,因为data它也是新的.)要分配给它,你需要data单独声明:

var data RandomDataType
data, i = GiveRandomData(i)
Run Code Online (Sandbox Code Playgroud)

或者给新i的临时名称:

data, next := GiveRandomData(i)
i = next
Run Code Online (Sandbox Code Playgroud)