.clear()
プリミティブ型のC++ 関数のようなものを探していますmap
。
それとも、代わりに新しいマップを作成する必要がありますか?
更新: ご回答ありがとうございます。回答を見て、新しいマップを作成すると、望ましくない不整合が生じる場合があることに気付きました。次の例を考えてみましょう。
var a map[string]string
var b map[string]string
func main() {
a = make(map[string]string)
b=a
a["hello"]="world"
a = nil
fmt.Println(b["hello"])
}
つまり、これは.clear()
オブジェクトの内容をクリアする C++ の関数とはまだ異なります。
ベストアンサー1
おそらく、新しいマップを作成するだけでよいでしょう。同じマップが複数のコードによって参照されていて、1 つのコードで明示的に値をクリアして、この変更が他のコードにも表示されるようにする必要がある場合を除き、既存のマップをクリアしようとする本当の理由はありません。
そうですね、おそらくこう言うべきでしょう
mymap = make(map[keytype]valtype)
何らかの理由で既存のマップをクリアする必要がある場合は、次のようにすると簡単です。
for k := range m {
delete(m, k)
}