こんにちは、双方向ロックアップを行う必要があり、map[key][key] のようなマップ構造が必要です。Go でそのように考える人はいますか? または、それを行うための最良の方法は何ですか?
1 に答える
5
言語やライブラリ (AFAIK) にはそのようなものはありませんが、実装するのは簡単ですstruct
。唯一の問題は、これらを一般的な方法で書くのが難しいことですが、それは次の方法で行うことができますinterface{}
:
type BidirMap struct {
left, right map[interface{}]interface{}
}
func (m *BidirMap) Insert(key, val interface{}) {
if _, inleft := left[key]; inleft {
delete(left, key)
}
if _, inright := right[val]; inright {
delete(right, val)
}
m.left[key] = val
m.right[val] = key
}
等
于 2013-02-18T23:14:49.297 に答える