免责声明:我是一个Go noob,学习时偷走了。任何建议是赞赏,但只有当伴随代码示例:-)
我有一个接口模型,它由struct Person实现。
要获得模型实例,我有以下助手函数:
func newModel(c string) Model {
switch c {
case "person":
return newPerson()
}
return nil
}
func newPerson() *Person {
return &Person{}
}
上面的方法允许我返回一个正确类型的Person实例(可以很容易地添加新模型以后用相同的方法)。
当我试图做类似的事情返回一个模型,我得到一个错误。码:
func newModels(c string) []Model {
switch c {
case "person":
return newPersons()
}
return nil
}
func newPersons() *[]Person {
var models []Person
return &models
}
Go抱怨:不能使用newPersons()(类型[]人)作为类型[]模型在返回参数
我的目标是返回一个切片的任何模型类型被请求([] Person,[] FutureModel,[] Terminator2000,w / e)。我缺少什么,如何正确实现这样的解决方案?