当方法实际上没有丢失时,界面转换恐慌

时间:2016-04-10 07:51:25

标签: go

不知何故,在运行时,我收到以下 panic 消息,即使在我看来该方法已正确定义到实现该接口的结构。

panic: interface conversion: schema.MerchantResultset 
is not search.ResultsetInterface: missing method Add

这是界面蓝图

type ResultsetInterface interface {
    Init(string)
    CacheSet(context.Context) error
    CacheSetPart(context.Context, int) error
    CacheGet(context.Context, string) error
    Add(interface{})
    AddResultset(interface{})
}

以下是在运行时报告缺失的方法,该方法已分配给我的struct MerchantResultset。

func (mr *MerchantResultset) Add(item interface{}) {
    mr.Data = append(mr.Data, item.(Merchant))
}

我在某种程度上非常困惑,试图了解这里实际需要什么

1 个答案:

答案 0 :(得分:9)

可能是因为你传递的是MerchantResultset,但Add方法只定义了指向类型的指针。