地图 - 删除数据

The*_*chu 32 dictionary go

如何从Go中的地图中删除数据?例如,拥有

m := map[string]string{ "key1":"val1", "key2":"val2" };
Run Code Online (Sandbox Code Playgroud)

我想让m放下"key1",而不是通过遍历其键来复制整个地图(在某些用途中可能会变得很大).是否足以将"nil"值分配给"key1",或者是否仍然将键保留在地图结构中且指定值为nil?也就是说,如果我稍后迭代地图的键,会出现"key1"吗?

pet*_*rSO 52

删除地图元素

内置函数delete从映射m中删除带有键k的元素.

delete(m, k)  // remove element m[k] from map m
Run Code Online (Sandbox Code Playgroud)

例如,

package main

import "fmt"

func main() {
    m := map[string]string{"key1": "val1", "key2": "val2"}
    fmt.Println(m)
    delete(m, "key1")
    fmt.Println(m)
}
Run Code Online (Sandbox Code Playgroud)

输出:

map[key1:val1 key2:val2]
map[key2:val2]
Run Code Online (Sandbox Code Playgroud)