Heim >Backend-Entwicklung >Golang >Können Sie Basistypmethoden in eingebetteten Typen mit überladenen Methoden in Go aufrufen?

Können Sie Basistypmethoden in eingebetteten Typen mit überladenen Methoden in Go aufrufen?

Barbara Streisand
Barbara StreisandOriginal
2024-11-15 10:39:03514Durchsuche

Can You Call Base Type Methods in Embedded Types with Overloaded Methods in Go?

Aufrufen von Basistypmethoden beim Überladen eingebetteter Typen

Beim Definieren benutzerdefinierter Typen in Go ist es möglich, eine Struktur in eine andere einzubetten, was Folgendes ermöglicht Code-Wiederverwendung und vererbungsähnliche Funktionalität. Dies kann jedoch beim Überladen von Methoden zu Konflikten führen.

Im bereitgestellten Beispiel haben die Human- und Employee-Strukturen SayHi-Methoden überlastet. Ist es möglich, die Human-Methode durch direkten Zugriff auf den eingebetteten Typ aufzurufen?

Ja, das ist tatsächlich möglich. Um auf die eingebettete Struktur eines übergeordneten Typs zuzugreifen, verwenden Sie einfach den Namen des eingebetteten Typs als Mitglied der übergeordneten Struktur. Um beispielsweise die Human-Methode aus der Employee-Instanz aufzurufen:

sam := Employee{Human{"Sam", 45, "111-888-XXXX"}, "Golang Inc"}
sam.Human.SayHi()

Dies wird Folgendes ausgeben:

Hi, I am Sam you can call me on 111-888-XXXX

Beachten Sie, dass Sie auch direkt über die eingebettete Struktur auf die Felder des übergeordneten Typs zugreifen können . Beispielsweise würde sam.age auf das Altersfeld der eingebetteten Struktur „Mensch“ innerhalb der Struktur „Mitarbeiter“ zugreifen.

Das obige ist der detaillierte Inhalt vonKönnen Sie Basistypmethoden in eingebetteten Typen mit überladenen Methoden in Go aufrufen?. 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