Heim  >  Artikel  >  Backend-Entwicklung  >  Wie initialisiere ich eingebettete Strukturen in Go?

Wie initialisiere ich eingebettete Strukturen in Go?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-11 01:30:02544Durchsuche

How to Initialize Embedded Structs in Go?

Grundlegendes zur Initialisierung eingebetteter Strukturen in Go

Go bietet das Konzept der Einbettung, das es einer Struktur ermöglicht, Felder eines anderen Typs zu enthalten, ohne ihre Implementierung zu duplizieren. Im Kontext eingebetteter Strukturen wird die Initialisierung der anonymen inneren Struktur zu einer wesentlichen Aufgabe.

Anonyme innere Struktur in MyRequest initialisieren

Beachten Sie den folgenden Codeausschnitt, in dem die MyRequest-Struktur die http.Request einbettet struct:

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

Um die anonyme innere Struktur http.Request in der New-Funktion zu initialisieren, können Sie diesen Ansätzen folgen:

  • Verwenden des neuen Schlüsselworts:
req := new(MyRequest)
req.PathParams = pathParams
req.Request = origRequest
  • Verwendung der Strukturliteral-Syntax:
req := &MyRequest{
  PathParams: pathParams
  Request: origRequest
}

Beide Ansätze erreichen das gleiche Ziel der Initialisierung des http .Request-Feld der MyRequest-Struktur mit dem bereitgestellten origRequest-Parameter.

Referenz

Ein tieferes Verständnis der Einbettung und Feldbenennung in Strukturen finden Sie in der offiziellen Go-Dokumentation:

  • https://golang.org/ref/spec#Struct_types

Das obige ist der detaillierte Inhalt vonWie initialisiere ich eingebettete Strukturen in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn