2017-07-17 85 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