2017-07-17 51 views
0

我正在开发中golang我运行循环下无法识别:使用了循环变量的Golang

// 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: i declared and not used

的Golang编译器似乎并没有认识到我变量在下一循环还给功能。在这个函数内部,I变量改变值。

我应该怎么做才能摆脱这种编译错误的,或者让golang明白,这个变量将未使用的,但在这无尽的for循环的下一次迭代中使用?

+0

请勿发布文字图像。改为复制文字。 – Flimzy

回答

7

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.

不,i不改变值; :=声明了一个新的i。 (围棋可以让你做到这一点,因为data也是新)赋予的,而不是,你需要单独声明data

var data RandomDataType 
data, i = GiveRandomData(i) 

或者给新i一个临时名称:

data, next := GiveRandomData(i) 
i = next