Dans Go, l'initialisation de structure se fait généralement à l'aide d'accolades { et }, comme le montre l'exemple suivant :
<code class="go">item1 := Item{1, "Foo"}</code>
Cependant, il est également possible d'initialiser des structures à l'aide de parenthèses (), comme indiqué ci-dessous :
<code class="go">item2 := (Item{2, "Bar"})</code>
Impact de l'initialisation entre parenthèses :
Les deux Les formes d’initialisation aboutissent à des valeurs d’élément identiques. L'initialisation entre parenthèses n'offre aucun avantage spécifique ni changement de fonctionnalité.
Quand utiliser les parenthèses :
Les parenthèses deviennent nécessaires lors de l'initialisation de structures au sein de certaines structures de contrôle, par exemple si déclarations. Sans parenthèses, le compilateur peut rencontrer une ambiguïté d'analyse, entraînant une erreur. Par exemple :
<code class="go">if i := Item{3, "a"}; i.Id == 3 { }</code>
Ce code provoquera une erreur de compilation car le compilateur ne sait pas si l'accolade ouvrante { appartient au littéral composite ou au corps de l'instruction if. Pour résoudre cette ambiguïté, des parenthèses peuvent être ajoutées :
<code class="go">if i := (Item{3, "a"}); i.Id == 3 { }</code>
Les parenthèses indiquent clairement que le littéral composite est une expression complète, qui est ensuite affectée à la variable i dans l'instruction if.
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!