Interface 如何在Go中声明复合接口?
以下接口定义了一组通过moing对象实现的方法:Interface 如何在Go中声明复合接口?,interface,go,Interface,Go,以下接口定义了一组通过moing对象实现的方法: type Mooing interface { Moo() string } type Grazing interface { EatGrass() } 下面定义了一组通过掠掠对象实现的方法: type Mooing interface { Moo() string } type Grazing interface { EatGrass() } 我有一个作用于奶牛的功能: func Milk(cow *Co
type Mooing interface {
Moo() string
}
type Grazing interface {
EatGrass()
}
下面定义了一组通过掠掠对象实现的方法:
type Mooing interface {
Moo() string
}
type Grazing interface {
EatGrass()
}
我有一个作用于奶牛的功能:
func Milk(cow *Cow)
不过,它不一定是一头母牛——任何符合哞哞叫
和放牧
的条件都足够接近了。在Go中,是否可以指定一个参数系泊和放牧
?在伪代码中,类似于以下内容
func Milk(cow {Mooing, Grazing})
换句话说,只接受满足这两个接口的参数。您可以按如下方式在Go中组合接口:
type MooingAndGrazing interface {
Mooing
Grazing
}
如果不想声明新的命名类型,可以将其内联为:
func Milk(cow interface{Mooing; Grazing})
你可以在这里尝试这个例子:+1这个答案和问题本身让我想试试Go.Beautiful。而且只有一个角色和我想象的相距甚远!只要我同意,我就接受。