假设我有以下接口和两个实现它的结构:
type Tmp interface {
MyTmp() string
}
type MyStructA struct {
ArrayOfItems []int
}
func (a MyStructA) MyTmp() string {
return "Hello World"
}
type MyStructB struct {
ArrayOfItems []int
}
func (a MyStructB) MyTmp() string {
return "Hello World B"
}
正如您注意到的那样,两者都MyStructA
实现MyStructB
了Tmp
,并且两者都有一个名为 ArrayOfItems 的属性。使用接口签名,我如何迭代两者都具有的属性?类似于:
func (c ADifferentStruct) iterate(myTmp Tmp) {
for _, number := range myTmp.ArrayOfItems {
fmt.Println(number)
}
}
注意:我不想在接口中添加另一个方法(即 getter/setter)来处理或定义ArrayOfItems
这可能吗?