【发布时间】:2021-09-21 03:21:06
【问题描述】:
我正在尝试实现这样的 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 切片中定义的所有插件。切片中的项目是硬编码的,有没有办法自动生成切片?
【问题讨论】: