En Go, lors de la déclaration de variables dans l'instruction d'initialisation d'une boucle for, une idée fausse courante survient lorsque essayer de spécifier explicitement le type de la variable. Bien que la syntaxe autorise des déclarations de variables courtes, indiquées par la forme d'affectation i := 0, elle interdit les déclarations de type explicites utilisant var i = 0.
Pour répondre à cette restriction, il faut recourir à la déclaration de la variable en dehors du for boucle, comme le montre l'exemple :
var i int64 for i = 0; i < 10; i++ { // i is of type int64 here }
Cette limitation provient de la spécification du langage, qui stipule que l'instruction d'initialisation ne peut contenir qu'une courte déclaration de variable utilisant le := opérateur.
Cependant, il est possible de contourner cette limitation en utilisant le transtypage de type dans l'instruction d'initialisation :
for i := int64(0); i < 10; i++ { // i is of type int64 here }
Dans ce cas, la fonction int64() convertit le littéral 0 en type souhaité. Bien que cette méthode puisse suffire pour des cas simples, elle peut conduire à un comportement inattendu lors de la conversion d'expressions ou de valeurs complexes. Par conséquent, il est conseillé de déclarer des variables de types spécifiques en dehors de la boucle for pour maintenir la clarté et éviter les pièges potentiels.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!