登录
首页 >  Golang >  Go问答

借助 Golang 中不同包的结构

来源:stackoverflow

时间:2024-02-28 17:36:25 220浏览 收藏

golang学习网今天将给大家带来《借助 Golang 中不同包的结构》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希望大家都能给我建议评论哈~希望能帮助到大家!

问题内容

在我的包 main 中,我有:

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 {
...
}

对此可以做什么?


解决方案


让我们从逻辑上来看待这个问题。这属于什么域:

type infotosend struct {
    id            string
    field1        string
    field2        string
}

它属于main还是rpc。它是要发送的信息,因此名称为 infotosend。该信息将通过什么发送?嗯,它看起来是远程过程调用的一部分。常识会将这种类型放在 rpc 包中,那么,当然。

解决方案很简单,将类型移至 rpc 包并导出类型 + 字段:

type infotosend struct {
    id            string
    field1        string
    field2        string
}

然后,从主包中,只需将其写入 main 包中:

err := rpc.SendValue(InfoToSend{
    ID:     "id",
    Field1: "field 1 value",
    Field2: "field 2 value",
})

工作完成。

好了,本文到此结束,带大家了解了《借助 Golang 中不同包的结构》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>