跨多个包共享结构

时间:2015-05-23 16:13:05

标签: go

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

type Message struct {
    SenderId int
    Content string
    AuthCode string
}

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

谢谢!

1 个答案:

答案 0 :(得分:9)

有三种不同的方法:

  1. 将服务器和客户端保持在同一个程序包中,就像使用它一样 http包。
  2. 创建单独的包(例如messagecommontypes,...)并在其中添加共享结构,etcd
  3. 将它们放入server包并将其导入client包中。例如,x/net/websocket包导入net/http
  4. 这真的是个人品味的问题。