2

我正在使用 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)
}

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

.\main.go:26:我声明但未使用

Golang 编译器似乎无法识别 i 变量在下一个循环中被返回给函数。在这个函数内部,I 变量改变了值。

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

4

1 回答 1

8

Golang 编译器似乎无法识别 i 变量在下一个循环中被返回给函数。在这个函数内部,I 变量改变了值。

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

var data RandomDataType
data, i = GiveRandomData(i)

或者给新i的临时名称:

data, next := GiveRandomData(i)
i = next
于 2017-07-17T07:15:26.587 回答