Problemstellung
Das Erstellen einer hierarchischen Struktur von Strukturen kann in Go Due eine Herausforderung sein auf das Fehlen einer expliziten Vererbung. Die AST-Implementierung des Go-Compilers verwendet leere Methoden zur Darstellung von Schnittstellen, was Fragen zu ihrer idiomatischen Natur und potenziellen Komplexität aufwirft.
Idiomatische Lösung
Obwohl Go die traditionelle Vererbung nicht unterstützt Es bietet alternative Konstrukte zur Darstellung von Hierarchien:
type Object interface { object() } type ObjectImpl struct {} func (o *ObjectImpl) object() {} type Immovable interface { Object immovable() } type ImmovableImpl struct { ObjectImpl // Embed ObjectImpl } func (o *Immovable) immovable() {} type Building struct { ImmovableImpl // Embed ImmovableImpl // Building-specific fields }
Bei diesem Ansatz erbt Building automatisch die Methoden von Object und Immovable, ohne dass explizit leere Methoden erforderlich sind.
Reduzierung leerer Methoden
Obwohl leere Methoden zum Dokumentieren und Durchsetzen von Typeinschränkungen nützlich sind, können sie durch die Verwendung von Methoden reduziert werden Einbettung:
Zusammenfassend lässt sich sagen, dass die Erstellung einer idiomatischen Strukturhierarchie in Go die sorgfältige Verwendung eingebetteter Schnittstellen und Methoden erfordert Einbettung, um Typbeziehungen herzustellen und Einschränkungen durchzusetzen.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go idiomatisch hierarchische Strukturen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!