【发布时间】:2014-06-25 07:22:18
【问题描述】:
下面的接口定义了一组mooing对象要实现的方法:
type Mooing interface {
Moo() string
}
下面定义了一组通过放牧对象实现的方法:
type Grazing interface {
EatGrass()
}
我有一个作用于奶牛的函数:
func Milk(cow *Cow)
不过,它不一定是牛——任何符合Mooing 和Grazing 的东西都足够接近。在Go中,是否可以指定Mooing and Grazing的参数?在伪代码中,类似于以下内容?
func Milk(cow {Mooing, Grazing})
换句话说,只有同时满足这两个接口的参数才会被接受。
【问题讨论】: