Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich auf eingebettete Felder in Go-Strukturen zu?

Wie greife ich auf eingebettete Felder in Go-Strukturen zu?

Linda Hamilton
Linda HamiltonOriginal
2024-10-27 13:38:29837Durchsuche

How Do I Access Embedded Fields in Go Structs?

Zugriff auf eingebettete Felder von Strukturtypen

In Go können Strukturtypen eingebettete Felder enthalten, die das Einbetten eines oder mehrerer Typen in eine Struktur ermöglichen. Diese leistungsstarke Funktion ermöglicht die Wiederverwendung von Code und eine effiziente Speicherverwaltung. Beim Erlernen von Zeigern kann es jedoch schwierig sein, den Zugriff auf diese Felder zu verstehen.

Beachten Sie die folgenden Strukturdefinitionen:

<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>

Wie Sie beobachtet haben, ist innerhalb der Cars-Struktur eine eingebettete Typzeiger *Engine ist definiert. Dies ermöglicht den Zugriff auf die Methoden und Felder des Engine-Typs über die Cars-Struktur.

Um auf das Power-Feld des eingebetteten Engine-Felds zuzugreifen, müssen Sie zunächst sowohl die Engine- als auch die Cars-Strukturen initialisieren. In der Hauptfunktion:

<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>

Durch die explizite Initialisierung beider Strukturen stellen Sie eine Verbindung zwischen dem eingebetteten *Engine-Zeiger und dem tatsächlichen Engine-Objekt her. Jetzt können Sie über die Struktur „Autos“ auf das Leistungsfeld zugreifen:

<code class="go">fmt.Println(car.power) // Prints 342</code>

Ähnlich können Sie für das nicht in einen Zeiger eingebettete Feld „Reifen“ direkt auf das Zahlenfeld zugreifen:

<code class="go">fmt.Println(car.number) // Prints 4</code>

Dieses Beispiel zeigt, wie Sie eingebettete Felder in einer Struktur ordnungsgemäß initialisieren und darauf zugreifen, sodass Sie die Wiederverwendung von Code und die effiziente Speicherverwaltung vollständig nutzen können.

Das obige ist der detaillierte Inhalt vonWie greife ich auf eingebettete Felder in Go-Strukturen zu?. 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