我正在嘗試在 go 中創(chuàng)建一些通用函數(shù)來處理許多不同的對(duì)象類型,其中一些類型嵌入了我創(chuàng)建的調(diào)用 BaseObject 的方便子類型。我似乎無法弄清楚如何測(cè)試“值接口{}”是否包含一個(gè) BaseObject,或者如何調(diào)用它的方法之一,例如 ToString()...它應(yīng)該返回 [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 關(guān)注
- 177 瀏覽
添加回答
舉報(bào)
0/150
提交
取消