【发布时间】:2019-09-14 00:07:14
【问题描述】:
在我的主包中,我有:
type InfoToSend struct {
id string
field1 string
field2 string
}
我调用一个方法发送:
err = rpc.SendValue(toSend.id, toSend.field1, toSend.field2)
我想将其重构为:
err = rpc.SendValue(toSend)
但在 rpc 包中,我无法访问 main.InfoToSend 结构。
func SendValue(info InfoToSend) error {
...
}
有什么办法呢?
【问题讨论】:
-
您可以创建另一个包来定义您的可共享功能,或者简单地创建一个包来定义您的可共享模型/类型。因此,在您的主应用程序下,您将有一个目录/包“模型”并在那里定义您的类型
InfoToSend,您可以在您的rpc包中重用它models.InfoToSend -
包
main是不可导入的,所以你需要将InfoToSend移动到rpc并在那里直接使用或者你可以在另一个importable中声明它,即非主包并让rpc和main导入该包。 -
@mkopriva 好吧,这就是为什么,谢谢这两个解决方案,但我会选择 mkopriva 解决方案,因为我只有一个模型。