接口(Interfaces)


struct Dog {}
struct Cat {}
 
fn (d Dog) speak() string {
	return 'woof'
}
fn (c Cat) speak() string {
	return 'meow'
}
 
interface Speaker {
	speak() string
}
 
fn perform(s Speaker) {
	println(s.speak())
}
 
fn main() {
	dog := Dog{}
	cat := Cat{}
	perform(dog) // ==> "woof" 
	perform(cat) // ==> "meow" 
} 

和Go语言类似,结构体通过实现某接口中的方法来"实现"该接口,没有明确的声明,也没有像Java中的 implements 关键字。