Maison >développement back-end >Golang >Comment éviter la répétition de code pour les fonctions avec des champs partagés dans Golang ?
Éviter la répétition de code pour les fonctions avec des champs partagés dans Golang
Pour éviter la duplication de code lors de l'écriture de fonctions pour plusieurs structures avec des champs identiques, tenez compte de la approche suivante :
Au lieu de définir des fonctions distinctes pour chaque structure, créez un type personnalisé pour le champ partagé, tel que la chaîne de version. Ce type peut servir de récepteur de méthode pour la fonction que vous souhaitez implémenter.
<code class="go">type Version string func (v Version) PrintVersion() { fmt.Println("Version is", v) }</code>
Dans vos structures, incluez le type personnalisé en tant que champ en utilisant la composition :
<code class="go">type Game struct { Name string MultiplayerSupport bool Genre string Version } type ERP struct { Name string MRPSupport bool SupportedDatabases []string Version }</code>
Maintenant, vous pouvez accéder et imprimer le champ Version à partir des deux structures en utilisant la méthode attachée au type personnalisé :
<code class="go">func main() { g := Game{ "Fear Effect", false, "Action-Adventure", "1.0.0", } g.PrintVersion() // Version is 1.0.0 e := ERP{ "Logo", true, []string{"ms-sql"}, "2.0.0", } e.PrintVersion() // Version is 2.0.0 }</code>
Cette approche vous permet d'éviter la répétition de code tout en conservant la possibilité d'imprimer le champ Version à partir de différentes structures. En définissant la fonction comme méthode d'un type personnalisé, vous vous assurez que la même implémentation est utilisée pour toutes les structures qui intègrent ce type.
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!