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 声明结构时,现在始终需要匹配声明的签名。



