2017-07-17 4 views
0

Je développe en golang et j'exécutez la commande suivante pour boucle:utilisation de variable pour la boucle non reconnue dans 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) 
} 

Cependant, lors de la compilation de ce programme, je reçois l'erreur suivante:

.\main.go:26: i declared and not used

Le compilateur Golang ne semble pas reconnaître que la variable i est renvoyée à la fonction dans la boucle suivante. Dans cette fonction, la variable I change de valeur.

Que dois-je faire pour me débarrasser de cette erreur de compilation ou pour faire comprendre à golang que cette variable n'est PAS inutilisée mais utilisée dans l'itération suivante de cette boucle infinie?

+0

Ne postez pas d'images de texte. Copiez le texte à la place. – Flimzy

Répondre

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.

Non, i ne change pas de valeur; := déclare une nouvelle i. (. Go vous permet de faire cela parce que data est aussi nouveau) Pour lui assigner la place, vous devrez déclarer data séparément:

var data RandomDataType 
data, i = GiveRandomData(i) 

Ou donnez le nouveau i un nom temporaire:

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