Maison >développement back-end >Golang >Comment pouvez-vous stocker à la fois les valeurs String et Int dans une structure Go ?
Stockage des valeurs String et Int dans une structure Go
Dans Go, il n'est pas possible de stocker à la fois les valeurs String et Int directement dans une structure Go. champ de structure unique. Cela est dû au système de types fort du langage, qui nécessite que les variables aient des types spécifiques et bien définis.
Solutions possibles
Pour contourner cette limitation, vous avez quelques options :
Implémentation d'interface dans Go 1.18 et au-delà
À l’aide d’une interface, vous pouvez créer un type pouvant contenir à la fois des valeurs de chaîne et des valeurs int. Voici un exemple :
type Input interface { IsValid() bool Value() interface{} } type TestCaseBool struct { input bool isValid bool } func (tc TestCaseBool) IsValid() bool { return tc.isValid } func (tc TestCaseBool) Value() interface{} { return tc.input }
Vous pouvez désormais utiliser la structure TestCaseBool pour contenir soit une valeur booléenne, soit une interface vide.
Remarque : Cette solution nécessite Go 1.18 ou supérieur pour travailler.
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!