Aufrufen von Methoden benannter Typen
In Go sind benannte Typen, die mit dem Schlüsselwort „type“ erstellt wurden, unterschiedliche Typen von ihren zugrunde liegenden Typen. Daher können Methoden, die zum zugrunde liegenden Typ gehören, nicht direkt auf dem benannten Typ aufgerufen werden.
Um dieses Problem zu lösen und einen benannten Typ um zusätzliche Methoden zu erweitern und dabei seine ursprüngliche Funktionalität beizubehalten, kann die Einbettungstechnik eingesetzt werden . Durch die anonyme Einbettung des zugrunde liegenden Typs in den benannten Typ werden die Methoden und Felder des eingebetteten Typs innerhalb des benannten Typs hochgestuft und sind zugänglich.
Zum Beispiel, wenn Sie einen benannten Typ StartTime haben, der eine time.Time umschließt value:
type StartTime time.Time func (st *StartTime) UnmarshalJSON(b []byte) error {...}
Um auf die Methoden von time.Time für den StartTime-Typ zuzugreifen, betten Sie time.Time anonym darin ein StartTime:
type StartTime struct { time.Time }
Jetzt können Sie Methoden wie Date() für StartTime aufrufen, als wären sie direkt für den Typ definiert:
myStartTime.Date()
Dieser Ansatz ermöglicht eine nahtlose Erweiterung von benannte Typen mit zusätzlichen Methoden unter Beibehaltung der ursprünglichen Funktionalität des zugrunde liegenden Typs.
Das obige ist der detaillierte Inhalt vonWie kann ich zugrunde liegende Typmethoden für einen benannten Typ in Go aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!