
getInstance需要返回
myInterface
package mainimport "fmt"func main() { var function func() myInterface function = getInstance newSomething := function() newSomething.doSomething()}type myInterface interface { doSomething()}type myStruct struct{}func (m *myStruct) doSomething() { fmt.Println("doing something")}func getInstance() myInterface { return &myStruct{}}*** 场上的例子
但是,* expensive.myStruct确实实现了myInterface接口,所以我不明白为什么Go抱怨此设置的类型安全。
在那种情况下,您不是在处理Go的接口,而是在处理结构的类型签名。
当您首次使用
factoryFunction func() *myFunctionfactoryFunction 声明结构时,现在始终需要匹配声明的签名。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)