"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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

Publié le 2025-03-22
Parcourir:612

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

Initialisation d'une structure embarquée dans Go

Lorsque vous travaillez avec des structures intégrées dans Go, un scénario commun implique l'initialisation de la structure anonyme intérieure. Cet article aborde un tel scénario, fournissant une compréhension claire de la façon d'atteindre l'initialisation à l'aide de 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 cela peut être fait:

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'avons attribué à req. Nous définissons ensuite le champ Pathparams en conséquence. Par la suite, nous accédons et définissons la structure Http.Request embarquée en faisant référence à 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éons une structure anonyme avec les champs requis. Il est important de préfixer le nom de structure embarqué avec «&» pour une initialisation appropriée. Il en résulte un objet MyRequest avec les valeurs souhaitées.

Les deux approches initialisent efficacement la structure Http.Request embarquée dans MyRequest, vous permettant de le personnaliser et de l'utiliser au besoin. Pour une référence supplémentaire, consultez la spécification GO sur les champs nommés pour les structures intégrées.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3