Maison >développement back-end >Golang >Les types primitifs intégrés dans Go offrent-ils de réels avantages ?

Les types primitifs intégrés dans Go offrent-ils de réels avantages ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-03 01:36:31199parcourir

Do Embedded Primitive Types in Go Offer Any Real Advantages?

Types intégrés : explorer l'utilité des intégrations primitives

Lorsque vous travaillez avec des structures Go, le concept d'intégration de types primitifs peut surgir. Considérez l'extrait de code ci-dessous :

type User struct {
    int32
    Name string
}

Ce code définit une structure User qui intègre le type primitif int32. Cependant, des questions se posent concernant l'utilité d'une telle intégration :

Les primitives intégrées ont-elles des méthodes ?

Non, les primitives intégrées comme int32 n'ont pas de méthodes associées. . Pour vérifier cela, on peut utiliser la réflexion pour inspecter le nombre de méthodes disponibles :

fmt.Println(reflect.TypeOf(int32(0)).NumMethod())

La sortie sera 0, indiquant que int32 n'a aucune méthode.

Accès à Embedded Primitive Valeurs

Pour accéder à la valeur int32 intégrée dans une instance utilisateur, on peut directement utiliser le nom du type non qualifié comme champ name :

u := User{3, "Bob"}
fmt.Printf("%#v\n", u)
u.int32 = 4
fmt.Println(u.int32)

Sortie :

main.User{int32:3, Name:"Bob"}
4

Avantages de l'intégration

Bien que l'intégration de types primitifs puisse ne pas fournir un accès direct aux méthodes, elle offre certains avantages en matière d'interfaces et de remplacement de méthodes.

  • Méthodes promues par le type intégré peut rationaliser les implémentations d'interface.
  • Les méthodes peuvent être remplacées dans le type d'intégration, permettant un comportement personnalisé lors de l'interaction avec des valeurs de ce type.
  • Les champs intégrés sont promus, raccourcissant les références à ceux-ci. champs.

Inconvénients de l'intégration prédéclarée Types

Lors de l'intégration de types prédéclarés comme int32, il y a un inconvénient à prendre en compte :

  • Les types prédéclarés intégrés qui commencent par des lettres minuscules ne sont automatiquement pas exportés, ce qui limite leur accessibilité.

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!

Déclaration:
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