草庐IT

interface - 为什么编译器要求对函数签名进行如此严格的匹配?

当将一个函数赋值给一个变量时,为什么编译器要求完美的函数签名匹配...变量的类型是一个函数,其参数或返回是一个特定的接口(interface),并且被分配的功能需要一个不同的接口(interface),但它是一个嵌入预期接口(interface)的接口(interface)。以这个例子为例......Fooer是一个接口(interface)FooerBarer是嵌入Fooer接口(interface)的接口(interface)*bar实现了FooerBarerhttp://play.golang.org/p/8NyTipiQak//Defineatypethatisafunctio

go - 创建构造函数映射

所以我想要一个函数名称映射,以根据环境变量选择接口(interface)的实现。我在以下代码中复制了它:packagetesttypeFooerinterface{Foo()error}typeBarstruct{}funcNewBar()(*Bar,error){return&Bar{},nil}func(b*Bar)Foo()error{returnnil}typeBazstruct{}funcNewBaz()(*Baz,error){return&Baz{},nil}func(b*Baz)Foo()error{returnnil}varconstructorsmap[string

go - 创建构造函数映射

所以我想要一个函数名称映射,以根据环境变量选择接口(interface)的实现。我在以下代码中复制了它:packagetesttypeFooerinterface{Foo()error}typeBarstruct{}funcNewBar()(*Bar,error){return&Bar{},nil}func(b*Bar)Foo()error{returnnil}typeBazstruct{}funcNewBaz()(*Baz,error){return&Baz{},nil}func(b*Baz)Foo()error{returnnil}varconstructorsmap[string