1

私はまだ物事のやり方に慣れていません。ここでは、BidiMap をラップするタイプ ClientConnectorPool があります。この型をどのように初期化すればよいですか? 私のbidiMapのあとがきに追加できるように?これを行う私の試みはすべてハックであり、インスピレーションが必要です。何らかの種類の om make(ClientConnectorPool) 関数を実装できますか?

私の頭ではこのように見えるはずですが、私の解決策はすべて、nil ポインターエラーを回避するための 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
}
4

1 に答える 1