Initialisieren einer eingebetteten Struktur in Go
Bei der Arbeit mit eingebetteten Strukturen in Go besteht ein häufiges Szenario darin, die innere anonyme Struktur zu initialisieren. Dieser Artikel befasst sich mit einem solchen Szenario und bietet ein klares Verständnis dafür, wie eine Initialisierung mit zwei Ansätzen erreicht werden kann.
Betrachten Sie die folgende eingebettete Struktur MyRequest:
type MyRequest struct { http.Request PathParams map[string]string }
Um MyRequest zu initialisieren, müssen wir festlegen die Werte für die eingebettete http.Request-Struktur. So geht das:
func New(origRequest *http.Request, pathParams map[string]string) *MyRequest { req := new(MyRequest) req.PathParams = pathParams req.Request = origRequest return req }
Bei diesem Ansatz erstellen wir zunächst ein neues MyRequest-Objekt und weisen es req zu. Anschließend legen wir das PathParams-Feld entsprechend fest. Anschließend greifen wir auf die eingebettete http.Request-Struktur zu und legen sie fest, indem wir auf req.Request verweisen.
Alternativ können wir die eingebettete Struktur auch mit der folgenden Syntax initialisieren:
req := &MyRequest{ PathParams: pathParams Request: origRequest }
Hier, wir Erstellen Sie eine anonyme Struktur mit den erforderlichen Feldern. Für eine ordnungsgemäße Initialisierung ist es wichtig, dem Namen der eingebetteten Struktur ein „&“ voranzustellen. Dies führt zu einem MyRequest-Objekt mit den gewünschten Werten.
Beide Ansätze initialisieren effektiv die eingebettete http.Request-Struktur in MyRequest, sodass Sie sie nach Bedarf anpassen und verwenden können. Weitere Informationen finden Sie in der Go-Spezifikation zu benannten Feldern für eingebettete Strukturen.
Das obige ist der detaillierte Inhalt vonSo initialisieren Sie eine eingebettete Struktur in Go: Eine Anleitung mit zwei Ansätzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!