我正在尝试在 Go 中使用继承,尽管继承在“技术上”不受支持(据我所知),但您可以通过使用匿名字段获得类似的功能。
这是我跨两个结构定义“继承”的方式:
//Parent struct:
type FSEntity struct {
guid GUIDNumber
}
//Child struct:
type DataBlock struct {
FSEntity
data []byte
}
我现在有一个定义如下的函数,它应该接受父 struct 的实例FSEntity:
Put(entity FSEntity) {....}
但是当我尝试将DataBlock(通过继承也是FSEntity)的实例传递给Put上面的函数时,如下所示:
guidNumber := GUIDNumber(1234)
value := []byte("sample string")
dataBLock := DataBlock{FSEntity{guidNumber}, value}
Put(dataBLock)
在上面的最后一行,我收到此错误:
cannot use dataBLock (type DataBlock) as type FSEntity in argument to Put
我该如何解决这个问题?
慕仙森
30秒到达战场
明月笑刀无情
相关分类