猿问

访问 GoLang 中的嵌入方法

我正在尝试在 go 中创建一些通用函数来处理许多不同的对象类型,其中一些类型嵌入了我创建的调用 BaseObject 的方便子类型。


我似乎无法弄清楚如何测试“值接口{}”是否包含一个 BaseObject,或者如何调用它的方法之一,例如 ToString()...它应该返回 [TestObject] 而不是 [BaseObject]


package Test


import(

    "fmt"

    "reflect"

)


func main() {

    Value:=TestObject{}

    TestFunction(Value)

}


//Generic function

func 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 Object

type BaseObject struct {

}

func (this *HCObject) ToString() string {

    return "[BaseObject]"

}


//Test Object

type TestObject struct{

    BaseObject

}

func (this *TestObject) ToString() string {

    return "[TestObject]"

}


慕村225694
浏览 160回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答