Maison > développement back-end > Golang > le corps du texte

Comment éviter la répétition de code pour les fonctions avec des champs partagés dans Golang ?

DDD
Libérer: 2024-10-27 07:50:31
original
871 Les gens l'ont consulté

How to Avoid Code Repetition for Functions with Shared Fields in 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!