Ich lese, wie zu initialisieren , und eine verwandte Q&A.Embed eine Art von anderen pkg in meins, und initiiere es durch literal
Was mein Problem ist, wenn Sie diesen Code kompilieren, ich habe:
[Fehler] unbekanntes Feld 'feature.DefaultSshHelper' in struct wörtlichen vom Typ dala02
type FDH feature.DefaultSshHelper
type dala02 struct {
Md5_v string
feature.DefaultSshHelper
//FDH
}
var x_01_h1_p = &dala02{
Md5_v: "",
feature.DefaultSshHelper: feature.DefaultSshHelper{
//FDH: FDH{
// blabla
},
}
// use it by a interface []feature.CmdFioHelper{x_00_h1_p}
zum ersten Mal, ich dachte, es war ein exportiertes Problem, also habe ich diese Zeile 'Type FDH feature.DefaultSshHelper' hinzugefügt. Jetzt haben wir diesen Fehler:
[Fehler] nicht verwenden x_01_h1_p (Typ * dala02) als Typ feature.CmdFioHelper in Array oder Slice wörtlichen: * dala02 nicht implementiert feature.CmdFioHelper (fehlende Getnextchecker Methode)
Aber ein Zeiger von feature.DefaultSshHelper implementiert feature.CmdFioHelper (eine Schnittstelle). Also Zeiger von dala02 sollte das auch umsetzen, oder? (Referenzform effektiv go)
Es gibt einen wichtigen Weg, bei dem sich die Einbettung von der Unterklasse unterscheidet. Wenn wir einen Typ einbetten, werden die Methoden dieses Typs zu Methoden des äußeren Typs, aber wenn sie aufgerufen werden, ist der Empfänger der Methode der innere Typ, nicht der äußere.
Frage ist, wie dieser Kompilierfehler behoben wird, welche Zeile falsch ist? Ich bin kein Experte für Golang, vielen Dank für Ihren Rat :). BTW Ich finde einige Abhilfe.
Danke für Ihre Antwort. –