Einbettung in Go: Zeiger vs. Wert
Einbettung ist eine Funktion in Go, die es einer Struktur ermöglicht, die Felder und Methoden einer anderen zu erben Struktur. Dies kann entweder per Zeiger oder per Wert erfolgen.
Einbettung per Zeiger
type Bitmap struct { data [4][4]bool } type Renderer struct { *Bitmap // Pointer to Bitmap on uint8 off uint8 }
Wert vs. Zeiger
Die bevorzugte Wahl zwischen Zeiger- und Werteinbettung hängt von mehreren Faktoren ab Faktoren:
Sonderfall
Im bereitgestellten Beispiel:
type Bitmap struct { data [4][4]bool } type Renderer struct { Bitmap // Embedded by value on uint8 off uint8 }
Einbettung nach Wert ist angesichts der wahrscheinlich die bevorzugte Option Kleine Bitmap-Größe. Dieser Ansatz sorgt für die Lokalität des Zugriffs und reduziert die Speicherzuweisungen.
Das obige ist der detaillierte Inhalt vonWann sollten Sie Pointer vs. Value Embedding in Go verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!