如何在Go中解决模糊选择器

时间:2017-01-22 22:04:25

标签: go struct interface

我定义了两种结构类型Type1和Type2

type Type1 struct {
A1,B1,C1 string
}
type Type2 struct {
A1,B1 string
}

将它们嵌入到struct type Supertype

type Supertype struct {
    Type1
    Type2
}

然后使用方法Send定义接口Sender,以便同时用于Type1和Type2

type Sender interface {
    Send() 
}

最后,我定义了func,我想引用Type1和Type2字段

func (p Supertype) Send() {
..
p.A1 = "foo"
..

}

当然会出现'模棱两可的选择器p.A1' 错误。如何使用方法发送两种结构类型Type1和Type2?有类似的问题两种不同的类型如何在golang中使用接口实现相同的方法?但我不认为它适用于我的情况

1 个答案:

答案 0 :(得分:7)

您可以使用

p.Type1.A1

如果Type2也有相同的字段A1