Maison > développement back-end > Golang > Comment les champs sans nom dans Go Structs font-ils la promotion des champs et intègrent-ils des types composés ?

Comment les champs sans nom dans Go Structs font-ils la promotion des champs et intègrent-ils des types composés ?

Barbara Streisand
Libérer: 2024-11-15 11:23:02
original
1084 Les gens l'ont consulté

How do Nameless Fields in Go Structs Promote Fields and Embed Compound Types?

Comprendre les champs sans nom dans les structures Go

Les champs sans nom (ou anonymes) dans les structures Go servent à deux fins :

1. Promouvoir un champ :

Le premier champ anonyme d'une structure devient le champ "promu". Cela signifie que vous pouvez accéder à ses propriétés directement depuis la structure parent sans spécifier le nom du champ.

2. Incorporer des types composés :

Les champs anonymes vous permettent d'incorporer des structures entières dans une autre structure, vous permettant ainsi d'exploiter la fonctionnalité du type intégré.

Pour illustrer ces concepts, considérez ce qui suit extrait de code :

package main

import (
    "fmt"
)

type Base struct {
    Name string
}

type Embedded struct {
    Address string
}

type Person struct {
    Base
    Embedded
}

func main() {
    person := Person{
        Base: Base{Name: "Alice"},
        Embedded: Embedded{Address: "123 Main Street"},
    }

    fmt.Printf("Name: %s, Address: %s\n", person.Name, person.Address)
}
Copier après la connexion

Dans cet exemple :

  • La structure Base a un nom Nom du champ.
  • La structure intégrée a un champ nommé Adresse.
  • La structure Personne intègre de manière anonyme les structures de base et intégrées.
  • La variable personne est une instance de la Structure de personne.

Lors de l'accès au Nom sur la personne, nous utilisons une syntaxe abrégée pour accéder au champ promu de Base, qui est le Nom. De même, pour accéder à Address, nous utilisons person.Address pour accéder à la structure Embedded intégrée.

Cela nous permet effectivement de créer un nouveau type (Person) qui hérite des propriétés des structures de base et intégrées, offrant ainsi une solution pratique et une manière propre de composer des structures de données complexes.

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