在go代码中,有一个方法说:
init() {
service = &Service {
updater: updaterVariable
}
}
更新程序字段的类型为*lib.Updater
我试图覆盖lib.Updater
的一个方法,并将其传递给init方法中的&Service
(如上所述)。
我正在做的是:
type ModifiedUpdater struct {
lib.Updater
}
//overridden method
func (f *ModifiedUpdater) Update(...) {
//implementation
}
当我初始化修改后的更新程序并尝试将其传递给Service时,我得到了类似于以下"Cannot use variable of *ModifiedUpdater as *Updater"
的内容
我尝试分配的方式:
init() {
modifiedUpd := &ModifiedUpdater{*lib.Updater{conn}}
service = &Service {
updater: modifiedUpd
}
}
我该怎么解决或者我应该采取什么方法?谢谢。
1条答案
按热度按时间fwzugrvs1#
在Go语言中,我们没有继承,你不能覆盖结构体的方法。
然后在某个结构中实现此方法
最后,您可以在init()函数中使用此结构体
你的服务应该看起来像这样: