Problème :
En Go , l'utilisation d'une structure anonyme comme valeur dans une déclaration de map déclenche un avertissement auprès de Gogland, soulevant la question : quelle est la différence entre les déclarations struct{}{} et {} dans de tels contextes ?
Réponse :
Comprendre la sémantique derrière ces deux syntaxes est crucial.
En général, les littéraux composites nécessitent une déclaration de type explicite (par exemple, []int{1, 2, 3}). Cependant, lorsqu'il travaille avec des cartes, le compilateur peut déduire les types de clés et de valeurs à partir du type de carte lui-même. Cela permet de simplifier la syntaxe littérale composite, en omettant la déclaration de type lorsque des valeurs du type approprié sont fournies.
Selon la spécification Go, dans des cas comme ceux-ci, la déclaration de type peut être supprimée lorsque le type du littéral composite correspond au type attendu par la carte. Ce comportement était initialement un oubli mais est devenu une fonctionnalité valide dans Go 1.5.
Remarque : La déclaration de type ne peut pas être omise lors de l'initialisation d'autres types de littéraux composites (par exemple, des tableaux, des tranches).
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!