我仍然不习惯这种做事的方式。这里我有包装 BidiMap 的类型 ClientConnectorPool。我应该如何初始化这种类型?这样我就可以添加到我的 bidiMap 后记?我所做的所有尝试都是骇人听闻的,我需要灵感,我可以为它实现某种 om make(ClientConnectorPool) 函数吗?
在我看来它应该是这样的,但我所有的解决方案都像 15 行代码以避免零指针错误:D
CC = make(ClientConnectorPool)
CC.Add("foo","bar")
代码:
package main
import ()
type ClientConnectorPool struct {
Name string
ConnectorList BidirMap
}
func (c ClientConnectorPool) Add(key, val interface{}){
c.ConnectorList.Add(key,val)
}
type BidirMap struct {
left, right map[interface{}]interface{}
}
func (m BidirMap) Add(key, val interface{}) {
if _, inleft := m.left[key]; inleft {
delete(m.left, key)
}
if _, inright := m.right[val]; inright {
delete(m.right, val)
}
m.left[key] = val
m.right[val] = key
}