2 回答
TA贡献1824条经验 获得超6个赞
如果您正在处理多种类型,那么您应该让您的方法返回一个interface{}. 对于所有适用的类型,创建一个方便的方法,例如;
func NewSomeObject(reqBody string) *SomeObject {
return &SomeObject{sample:reqBody}
}
它接受一个字符串并返回该类型的新实例,该字段设置为传入的任何内容。您的问题是缺少有关如何确定应实例化哪种类型的信息,但假设您有几个,您可能需要一个 if /else 或接收请求正文的方法中的开关,因此举一个非常模糊的例子,它可能是这样的;
func ProcessRequest(reqBody string) interface{} {
if someCondition {
return NewSomeObject(reqBody)
} else if otherCondition {
return NewSomeOtherObject(reqBody)
} // potentially several other statements like this
return nil // catch all, if no conditions match
}
TA贡献1818条经验 获得超8个赞
怎么样
func foo (s *SomeObject) {
s.sample = 123
}
或者
func (s *SomeObject) foo() {
s.sample = 123
}
- 2 回答
- 0 关注
- 125 浏览
添加回答
举报