我有一个接口Model
,由 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 抱怨:cannot use newPersons() (type []Person) as type []Model in return argument
我的目标是返回请求的任何模型类型的切片(无论是、、、、w []Person
/ e)。我错过了什么,如何正确实施这样的解决方案?[]FutureModel
[]Terminator2000