【发布时间】:2014-08-01 19:54:13
【问题描述】:
我正在尝试在结构上编写一个方法,该方法接受接口类型并返回该接口类型但转换为适当的类型。
type Model interface {
GetEntity()
}
type TrueFalseQuestions struct {
//some stuff
}
func (q *TrueFalseQuestions) GetEntity() {
//some stuff
}
type MultiQuestions struct {
//some stuff
}
func (q *MultiQuestions) GetEntity() {
//some stuff
}
type Manager struct {
}
func (man *Manager) GetModel(mod Model) Model {
mod.GetEntity()
return mod
}
func main() {
var man Manager
q := TrueFalseQuestions {}
q = man.GetModel(&TrueFalseQuestions {})
}
所以当我用TrueFalseQuestions 类型调用GetModel() 时,我想自动返回TrueFalseQuestions 类型。我想这意味着我的 GetModel() 方法应该返回一个 Model 类型。这样,如果我传递 MultiQuestion 类型,则返回 MultiQuestion 结构。
【问题讨论】:
-
请说明您的实际问题是什么。理想情况下,您的帖子包含一个以问号结尾并提出具体问题的句子。我不太确定您的实际问题是什么。
-
@FUZxxl 他想从他的
GetModelfunc 中返回实际的“结构”,但是那样不行,他必须使用类型断言,检查两个答案。