1. ホーム
  2. dictionary

[解決済み】地図上のキーを削除する

2022-04-02 22:15:14

質問

地図があります。

var sessions =  map[string] chan int{}

を削除するにはどうすればよいですか? sessions[key] ? 試してみました。

sessions[key] = nil,false;

うまくいかなかったね。

更新情報 (2011年11月)。

において、マップエントリを削除するための特殊な構文が削除されました。 囲碁バージョン1 :

Go 1では、特別なマップの割り当てが削除され、新しい組み込み関数が導入されます。 delete : delete(m, x) という式で取得したマップエントリを削除します。 m[x] . ...

解決方法は?

不思議なことに

package main

func main () {
    var sessions = map[string] chan int{};
    delete(sessions, "moo");
}

は動作するようです。しかし、これはリソースの使い方が悪いようです

もう一つの方法は、存在を確認し、値そのものを使用することです。

package main

func main () {
    var sessions = map[string] chan int{};
    sessions["moo"] = make (chan int);
    _, ok := sessions["moo"];
    if ok {
        delete(sessions, "moo");
    }
}