Ist eine anonyme Schnittstellenimplementierung in Go möglich?
Die Möglichkeit, eine anonyme Implementierung einer Schnittstelle mithilfe anonymer Funktionen zu definieren, ähnlich dem Pseudocode:
RandomNumOp({
Binary: func(a,b int) int { return a+b},
Ternary: func(a,b,c int) int {return a+b+c},
})
Nach dem Login kopieren
wird in Go nicht direkt unterstützt. Hier sind einige mögliche Ansätze, je nachdem, ob die Implementierung funktionieren muss:
Wenn die Implementierung funktionieren muss
-
Verwenden Sie eine vorhandene Implementierung: Definieren Sie einen Typ, der bettet eine vorhandene Implementierung ein und stellt die erforderlichen Methoden bereit.
Wenn keine Implementierung erforderlich ist Arbeit
-
Verwenden Sie ein anonymes Strukturliteral: Betten Sie den Schnittstellentyp in ein anonymes Strukturliteral ein und stellen Sie eine Platzhalterimplementierung (mit leeren Methoden) für die Schnittstellenfunktionen bereit.
Das obige ist der detaillierte Inhalt vonKann Go Schnittstellen anonym implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!