Dans Go, les types de structure peuvent contenir des champs intégrés, qui permettent d'incorporer un ou plusieurs types dans une structure. Cette fonctionnalité puissante permet la réutilisation du code et une gestion efficace de la mémoire. Cependant, comprendre comment accéder à ces champs peut s'avérer difficile lors de l'apprentissage des pointeurs.
Considérez les définitions de structure suivantes :
<code class="go">type Engine struct { power int } type Tires struct { number int } type Cars struct { *Engine // Embedded field with pointer Tires // Embedded field without pointer }</code>
Comme vous l'avez observé, dans la structure Cars, un élément intégré type pointeur *Le moteur est défini. Cela permet d'accéder aux méthodes et aux champs du type Engine via la structure Cars.
Pour accéder au champ de puissance du champ intégré Engine, vous devez d'abord initialiser les structures Engine et Cars. Dans la fonction principale :
<code class="go">func main() { car := new(Cars) // Initialize Cars struct car.Engine = new(Engine) // Initialize Engine struct explicitly car.power = 342 // Set power field car.number = 4 // Set number field }</code>
En initialisant explicitement les deux structures, vous établissez une connexion entre le pointeur *Engine intégré et l'objet Engine réel. Désormais, vous pouvez accéder au champ de puissance via la structure Cars :
<code class="go">fmt.Println(car.power) // Prints 342</code>
De même, pour le champ intégré sans pointeur Pneus, vous pouvez accéder directement à son champ numérique :
<code class="go">fmt.Println(car.number) // Prints 4</code>
Cet exemple montre comment initialiser et accéder correctement aux champs incorporés dans une structure, vous permettant d'utiliser pleinement la réutilisation du code et la gestion efficace de la mémoire.
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!