Types de structure intégrés Golang : comprendre la syntaxe et l'utilisation
Lorsque vous travaillez avec des types de structures intégrés dans Go, il est crucial de comprendre leur syntaxe et bon usage. Cet article aborde le problème de l'impossibilité d'initialiser une structure intégrée.
Problème :
Considérez les types suivants :
type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error }
Tentative de initialiser une ErrorValue en utilisant la syntaxe :
e := ErrorValue{Name: "alpha", Value: 123, Error: err}
aboutit à un erreur.
Solution :
Les types intégrés, également appelés champs sans nom, sont désignés par leur nom de type non qualifié. Dans le code fourni, la syntaxe d'initialisation de ErrorValue est incorrecte.
Conformément à la spécification du langage Go, un champ intégré doit être initialisé en utilisant le nom du type sans nom de champ. Voici la syntaxe correcte :
e := ErrorValue{NamedValue: NamedValue{Name: "fine", Value: 33}, Error: err}
Vous pouvez également omettre les noms de champs du littéral composite :
e := ErrorValue{NamedValue{"fine", 33}, err}
Exemple :
package main import "fmt" type Value interface{} type NamedValue struct { Name string Value Value } type ErrorValue struct { NamedValue Error error } func main() { e := ErrorValue{NamedValue{Name: "alpha", Value: 123}, fmt.Errorf("some error")} fmt.Println(e) }
Sortie :
{NamedValue:{Name:alpha Value:123} Error:some error}
En comprenant la syntaxe et l'utilisation des types de structures, vous pouvez les exploiter efficacement dans vos programmes Go.
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!