我正在尝试实现一个像这样的golang插件接口:
package main
import "fmt"
type Plugin interface {
Run() bool
}
type Plugin1 struct{}
type Plugin2 struct{}
func (p Plugin1) Run() bool {
fmt.Println("Plugin1::Run()")
return true
}
func (p Plugin2) Run() bool {
fmt.Println("Plugin2::Run()")
return true
}
func main() {
plugins := []Plugin{
Plugin1{},
Plugin2{},
}
for _, plugin := range plugins {
plugin.Run()
}
}
我可以调用切片中定义的所有插件。切片中的项目是硬编码的,有没有办法自动生成切片?plugins
忽然笑
相关分类