如何从Go中的地图中删除数据?例如,有
m := map[string]string{ "key1":"val1", "key2":"val2" };
我想让m删除“key1”,而不是通过遍历其键来复制整个地图(这在某些用途中会变得很大)。是否足以将“nil”值分配给“key1”,或者是否仍然将键保留在地图结构中且指定值为nil?也就是说,如果我稍后迭代地图的键,会出现“key1”吗?
答案 0 :(得分:52)
内置函数
delete
从地图中删除带有键k的元素 米。delete(m, k) // remove element m[k] from map m
例如,
package main
import "fmt"
func main() {
m := map[string]string{"key1": "val1", "key2": "val2"}
fmt.Println(m)
delete(m, "key1")
fmt.Println(m)
}
输出:
map[key1:val1 key2:val2]
map[key2:val2]