要删除地图[关键字]吗?

我有一张地图:

var sessions =  map[string] chan int{}

如何删除sessions[key]?我试过了:

sessions[key] = nil,false;

那没用。


更新(2011年11月):

Go版本1中删除了删除映射条目的特殊语法:

Go 1将删除特殊的地图分配,并引入一个新的内置函数deletedelete(m, x)将删除由表达式检索的地图条目m[x]。...


陪伴而非守候
浏览 292回答 3
3回答

森栏

很奇怪的是,package mainfunc main () {    var sessions = map[string] chan int{};    delete(sessions, "moo");}似乎有效。不过,这似乎对资源的使用很差!另一种方法是检查是否存在并使用值本身:package mainfunc main () {    var sessions = map[string] chan int{};    sessions["moo"] = make (chan int);    _, ok := sessions["moo"];    if ok {        delete(sessions, "moo");    }}

慕娘9325324

从Go 1发行说明复制在旧的语言中,k要从所代表的地图中删除带有键的条目m,请写下该语句,m[k] = value, false此语法是一种特殊的特殊情况,唯一的二对一分配。它要求传递一个被评估但被丢弃的值(通常被忽略),以及一个几乎总是常量false的布尔值。它完成了工作,但很奇怪,也是争论的焦点。在Go 1中,语法已经消失了。而是有一个新的内置函数delete。通话delete(m, k)将删除由表达式检索的地图条目m[k]。没有返回值。删除不存在的条目是无操作。更新:跑步go fix会的形式表达转换m[k] = value, false成delete(m, k)时显然被忽略的值可以从程序被安全地丢弃,false是指预定义的布尔常数。该修复工具将标记该语法的其他用途,以供程序员检查。

小唯快跑啊

从有效出发:要删除地图条目,请使用delete内置函数,该函数的自变量是地图和要删除的键。即使地图上已经没有钥匙,也可以这样做。delete(timeZone, "PDT")  // Now on Standard Time
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go