Maison > développement back-end > Golang > Pouvez-vous stocker différents types de données dans un seul champ de structure dans Go ?

Pouvez-vous stocker différents types de données dans un seul champ de structure dans Go ?

Patricia Arquette
Libérer: 2024-11-15 16:27:03
original
885 Les gens l'ont consulté

Can You Store Different Data Types in a Single Struct Field in Go?

Déclaration et utilisation de champs de structure pour plusieurs types de données dans Go

Dans Go, vous pouvez définir une structure pour représenter les données associées. Cependant, que se passe-t-il si vous souhaitez qu'un champ de structure puisse stocker à la fois des valeurs de chaîne et des valeurs int ?

Pour mieux comprendre ce problème, considérez la structure suivante :

type testCase struct {
   input   string
   isValid bool
}
Copier après la connexion

Cette structure est conçue pour stocker un scénario de test où input est une chaîne et isValid est un booléen. Dans certains scénarios, vous souhaiterez peut-être autoriser l'entrée à être une chaîne ou un entier.

Au départ, vous pourriez envisager de convertir l'entrée int en chaîne et de nouveau en int pendant le traitement. Cependant, cette approche est inefficace et sujette aux erreurs.

Une autre option pourrait consister à définir deux structures distinctes, telles que testCaseInt et testCaseStruct. Cela résoudrait le problème, mais cela entraînerait une duplication de code inutile.

Est-il possible de stocker différents types de données dans un seul champ de structure à l'aide d'une interface ?

Non , ce n'est pas possible dans les versions Go antérieures à la 1.18. Le système de types de Go ne prend pas en charge les types de somme, qui sont des types pouvant représenter plusieurs variantes de données.

Dans Go 1.18, les types de somme seront pris en charge grâce à l'introduction de génériques. Cependant, jusque-là, il n'existe aucun moyen intégré pour obtenir cette fonctionnalité.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal