我对 Go 很陌生并且有这个“设计”问题。
我有一个通过渠道传递工作的主程序。每个作业都将在单独的“worker”包中定义的函数中结束。作业是结构。
现在我希望调用的每个函数都通过“结果”通道将结果作为公共结构返回。但是包不知道我在 main 中的结构定义,所以我无法定义它。
package main
type resultEvent struct {
name string
desc string
}
然后在一个工人包中:
package worker
func Test() {
result := &resultEvent{name: "test"}
}
当然,这个想法是最终将这个结果发送到一个通道,但即使是这个简单的例子也行不通,因为 worker 不知道 resultEvent。这样做的正确方法是什么?
更新:
需要注意的是会有很多worker包,做不同的事情。有点像“插件”(只是根本不可插入)。我不想在每个 go-file 中定义一个冗余的结构,然后必须维护超过 50 个非常不同的工作包。
我正在寻找构建它的正确方法,因此我可以为所有工作包重用一个结构。
蛊毒传说
慕慕森
临摹微笑
相关分类