我正在嘗試在 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 回答
- 0 關注
- 173 瀏覽
添加回答
舉報
0/150
提交
取消