在结构图中实现结构集

时间:2016-12-20 15:27:03

标签: go struct interface

我有一个结构图,如下所示:

type SocketID string
type Socket struct {
    socket //...
    id     string
}

type Channel struct {
    sync.Mutex
    sockets map[SocketID]Socket
}

我希望能够为其添加子通道,其中每个Socket属于一个子通道。我尝试将通道结构更改为:

type SubchannelID string
type Channel struct {
    sync.Mutex
    sockets     map[SocketID]Socket
    subchannels map[SubchannelID]map[SocketID]Socket
}

但我遇到的问题是从Socket删除Channel成为O(n ^ 2)操作,并且每个套接字在sockets和{{之间重复1}}地图。如何在保持通道和子通道从插座中抽象出来的同时对其进行优化?

1 个答案:

答案 0 :(得分:0)

没关系,回答结果很简单:

$.post