面试题答案
一键面试package main
import "fmt"
// 定义Runner接口
type Runner interface {
Run()
}
// 定义Dog结构体并实现Runner接口
type Dog struct{}
func (d Dog) Run() {
fmt.Println("Dog is running")
}
// 定义Cat结构体并实现Runner接口
type Cat struct{}
func (c Cat) Run() {
fmt.Println("Cat is running")
}
// 定义RunAll函数,接受Runner类型的切片并调用每个元素的Run方法
func RunAll(runners []Runner) {
for _, runner := range runners {
runner.Run()
}
}
你可以在main
函数中这样使用:
func main() {
var runners []Runner
runners = append(runners, Dog{})
runners = append(runners, Cat{})
RunAll(runners)
}