猿问

最佳实践,如何初始化自定义类型?

我还是不习惯 go 的做事方式。这里我有包装 BidiMap 的 ClientConnectorPool 类型。我应该如何初始化这种类型?以便我可以添加到我的 bidiMap 后记?我所做的所有尝试都是 hackish,我需要灵感,我可以为它实现某种 om make(ClientConnectorPool) 函数吗?


在我的脑海中它应该是这样的,但我所有的解决方案都像 15 行代码以避免 nil 指针错误: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

}


动漫人物
浏览 174回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答