Maison >développement back-end >Golang >Pourquoi ne puis-je pas déclarer une variable typée dans l'instruction d'initialisation d'une boucle Go For ?

Pourquoi ne puis-je pas déclarer une variable typée dans l'instruction d'initialisation d'une boucle Go For ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 06:12:14422parcourir

Why Can't I Declare a Typed Variable in a Go For Loop's Initialization Statement?

Déclaration de variable dans l'instruction d'initialisation d'une boucle For

En Go, la syntaxe d'une boucle for permet de déclarer une variable lors de l'initialisation déclaration. Cependant, cette déclaration doit suivre un format spécifique.

La question se pose de savoir pourquoi une variable ne peut pas être déclarée avec un type spécifique dans l'instruction d'initialisation, comme pour var i int64 = 0; je &Lt ; 10 ; je {}. Au lieu de cela, le code nécessite une déclaration de variable distincte (var i int64) suivie d'une instruction d'affectation (i = 0).

La spécification du langage pour la boucle for explique que l'instruction init ne peut être qu'une courte déclaration de variable , qui est une affectation de la forme i := 0. Il ne peut pas s'agir d'une déclaration de variable complète utilisant var.

Cette restriction découle probablement du désir de simplicité du langage. En limitant l'instruction d'initialisation à une courte déclaration de variable, la syntaxe devient plus concise et moins déroutante.

Cependant, il convient de noter qu'il existe une solution de contournement pour déclarer une variable avec un type spécifique dans l'instruction d'initialisation. Cela peut être fait en utilisant une conversion de type explicite :

for i := int64(0); i < 10; i++ {
    // i here is of type int64
}

Dans cet exemple, la variable i est explicitement convertie en type int64 dans l'instruction d'initialisation.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn