对于Go来说这是非常新的并且有这个“设计”问题。如何定义一个全局结构并重用它的包
我有一个主要的程序通过渠道传递工作。每个作业最终都会在一个单独的“worker”包中定义的函数中结束。工作是结构。
现在我想要调用每个函数,通过“结果”通道将结果作为公共结构返回。但包不知道我在主要的结构定义,所以我不能定义它。
package main
type resultEvent struct {
name string
desc string
}
然后在一个工人包:
package worker
func Test() {
result := &resultEvent{name: "test"}
}
思路当然是最终发送此结果向下切换一个频道,但即使这个简单的例子不会工作,因为工人犯规了解的ResultEvent。 这样做的正确方法是什么?
更新:
应当指出的是,会有很多工人包,做不同的事情。 Sorta就像“插件”(根本不可插拔)。 我不想在每个go-file中定义一个冗余结构,然后必须维护可能有50个不同的工作包。
我正在寻找什么是正确的方式来构造这个,所以我可以重用一个结构的所有工人包。
downvote的任何解释? – thelogix