1

错误示例@play.golang.org:http ://play.golang.org/p/GRoqRHnTj6

以下代码返回“prog.go:16: cannot use NewMyGame (type func() MyGame) as type func() Playable in return argument”,即使接口完全为空。请在下面找到附加的代码,不幸的是,我完全被难住了,任何帮助都将不胜感激。

package main

// Define an arbitrary game type
type MyGame struct{}

// Create a constructor function for arbitrary game type
func NewMyGame() MyGame {
    return MyGame{}
}

// Define an interface defining game types
type Playable interface{}

// In my app it will return a list of constructors matching interface
func Playables() func() Playable {
    return NewMyGame
}

func main() {}
4

1 回答 1

1

正如错误所说,

cannot use NewMyGame (type func() MyGame) as type func() Playable

一个简单的解决方法是

func Playables() func() Playable {
    return func() (Playable) {
        return NewMyGame()
    }
}
于 2013-07-01T13:19:17.123 回答