Maison >développement back-end >Golang >Comment initialiser une structure intégrée dans Go : un guide à deux approches

Comment initialiser une structure intégrée dans Go : un guide à deux approches

Susan Sarandon
Susan Sarandonoriginal
2024-11-17 15:44:02406parcourir

How to Initialize an Embedded Struct in Go: A Two-Approach Guide

Initialisation d'une structure intégrée dans Go

Lorsque vous travaillez avec des structures intégrées dans Go, un scénario courant implique l'initialisation de la structure anonyme interne. Cet article aborde un tel scénario, fournissant une compréhension claire de la façon de réaliser l'initialisation en utilisant deux approches.

Considérez la structure intégrée suivante MyRequest :

type MyRequest struct {
    http.Request
    PathParams map[string]string
}

Pour initialiser MyRequest, nous devons définir les valeurs de sa structure http.Request intégrée. Voici comment procéder :

func New(origRequest *http.Request, pathParams map[string]string) *MyRequest {
    req := new(MyRequest)
    req.PathParams = pathParams
    req.Request = origRequest
    return req
}

Dans cette approche, nous créons d'abord un nouvel objet MyRequest et l'attribuons à req. Nous définissons ensuite le champ PathParams en conséquence. Par la suite, nous accédons et définissons la structure http.Request intégrée en référençant req.Request.

Alternativement, nous pouvons également initialiser la structure intégrée en utilisant la syntaxe suivante :

req := &MyRequest{
  PathParams: pathParams
  Request: origRequest
}

Ici, nous créez une structure anonyme avec les champs obligatoires. Il est important de préfixer le nom de la structure intégrée avec « & » pour une initialisation correcte. Cela aboutit à un objet MyRequest avec les valeurs souhaitées.

Les deux approches initialisent efficacement la structure http.Request intégrée dans MyRequest, vous permettant de la personnaliser et de l'utiliser selon vos besoins. Pour plus d'informations, consultez la spécification Go sur les champs nommés pour les structures intégrées.

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