【问题标题】:Sharing structs across multiple packages跨多个包共享结构
【发布时间】:2015-05-24 03:10:38
【问题描述】:

假设我们有一个客户端服务器场景,在这种情况下,服务器和客户端都使用通用的消息结构相互通信。因此,使用struct 来定义消息结构,类似于这样

type Message struct {
    SenderId int
    Content string
    AuthCode string
}

现在为了避免重复自己并且在客户端包和服务器包中都有Message 结构,解决这个问题的 GoWay 是什么?

谢谢!

【问题讨论】:

    标签: go


    【解决方案1】:

    有三种不同的方法:

    1. 将服务器和客户端保持在同一个包中,就像 http 包。
    2. 创建单独的包(比如messagecommontypes、...)并在那里添加您的共享结构,etcd 也是如此
    3. 将它们放入server 包中并将其导入client 包中。例如,x/net/websocket 包导入 net/http

    这真的是个人品味的问题。

    【讨论】:

    • 假设我去三号门,你能详细说明如何做到这一点吗?或者更好的是只分享一个例子。并感谢您的回答
    • 完成,添加示例。 :-)
    • 什么例子?我错过了什么吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多