我正在尝试在 go 中创建一些通用函数来处理许多不同的对象类型,其中一些类型嵌入了我创建的调用 BaseObject 的方便子类型。我似乎无法弄清楚如何测试“值接口{}”是否包含一个 BaseObject,或者如何调用它的方法之一,例如 ToString()...它应该返回 [TestObject] 而不是 [BaseObject]package Testimport( "fmt" "reflect")func main() { Value:=TestObject{} TestFunction(Value)}//Generic functionfunc TestFunction(Value interface{}){ // Does value contain BaseObject? reflect.TypeOf(Value).Containes...Implements?? //Convert to BaseObject? BO:=Value.(BaseObject) // If it does, call BO.ToString() //fmt.println(BO.ToString())}//Base Objecttype BaseObject struct {}func (this *HCObject) ToString() string { return "[BaseObject]"}//Test Objecttype TestObject struct{ BaseObject}func (this *TestObject) ToString() string { return "[TestObject]"}
2 回答
- 2 回答
- 0 关注
- 146 浏览
添加回答
举报
0/150
提交
取消