Irgendwie, zur Laufzeit, bekomme ich die folgenden Panik Nachricht, auch wenn es mir scheint, ist die Methode für die Struktur definiert, die diese Schnittstelle implementiert.Schnittstelle Umwandlung Panik, wenn Methode nicht tatsächlich fehlt
panic: interface conversion: schema.MerchantResultset
is not search.ResultsetInterface: missing method Add
Dies ist die Schnittstelle Bauplan
type ResultsetInterface interface {
Init(string)
CacheSet(context.Context) error
CacheSetPart(context.Context, int) error
CacheGet(context.Context, string) error
Add(interface{})
AddResultset(interface{})
}
Das Folgende ist die Methode, die fehlt während der Laufzeit gemeldet wird, die zu meiner struct MerchantResultset zugeordnet ist.
func (mr *MerchantResultset) Add(item interface{}) {
mr.Data = append(mr.Data, item.(Merchant))
}
ich irgendwie sehr verwirrt versucht, zu verstehen, was tatsächlich benötigt wird hier
stimme mit Roland llligs Antwort überein. Ihre Panik meldet, dass 'schema.MerchantResultset' die Methode nicht implementiert. Dies ist der Fall, da die Add-Methode über den Zeigerempfänger verfügt. Sie müssen '& MerchantResultset {}' übergeben, nicht 'MerchantResultset {} '. – nevets
Irgendwie gibt beide Optionen immer noch die gleiche Panik: 1) item: = schema.Merchant {}; resultSet.Add (Element) 2) Element: = schema.Merchant {}; resultSet.Add (& item) – gextra
Also im Grunde bedeutet es, dass der einzige Implementierer wäre func (mr MerchantResultset) Add (Element-Schnittstelle {})? – gextra