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

Comment fonctionnent les champs anonymes dans Go Structs ?

Linda Hamilton
Libérer: 2024-11-14 22:22:02
original
630 Les gens l'ont consulté

How do Anonymous Fields Work in Go Structs?

Champs anonymes dans les structures Go

Dans Go, les structures peuvent contenir des champs anonymes, qui sont des champs sans noms explicites. Ces champs vous permettent d'intégrer une autre structure ou un autre type dans votre structure actuelle, donnant accès aux champs du type intégré sans les lister explicitement.

Objectif des champs anonymes

Les champs anonymes servent à plusieurs fins :

  • Type Embedding :Ils vous permettent de intégrez les champs d'un type dans un autre, réduisant ainsi la duplication de code et facilitant le travail avec des structures de données complexes.
  • Promotion : Le premier champ anonyme est connu sous le nom de « champ promu ». Ses champs sont accessibles directement sur la structure parent, car cela agit comme si ces champs étaient déclarés dans la structure parent.

Accès aux champs anonymes

Vous pouvez accéder aux champs anonymes de la même manière que vous accéderiez aux champs nommés. Le champ promu est accessible directement en utilisant le nom du champ de la structure parent. D'autres champs anonymes sont accessibles à l'aide du nom de champ du type intégré.

Exemple

Considérez le code suivant :

package main

import "fmt"

type Widget struct {
    name string
}

type WrappedWidget struct {
    Widget  // Promoted field
    Time time.Time
    Price int64
}

func main() {
    widget := Widget{"my widget"}
    wrappedWidget := WrappedWidget{widget, time.Now(), 1234}

    fmt.Printf("Widget named %s, created at %s, has price %d\n",
        wrappedWidget.name,  // Accessing the promoted field
        wrappedWidget.Time,  // Accessing an anonymous field
        wrappedWidget.Price) // Accessing a normal field
}
Copier après la connexion

Sortie :

Widget named my widget, created at 2009-11-10 23:00:00 +0000 UTC m=+0.000000001, has price 1234
Copier après la connexion

Dans cet exemple, WrappedWidget intègre la structure Widget et promeut son nom champ. De ce fait, vous pouvez accéder au champ nom directement sur l'instance WrappedWidget.

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