Go delete函数:从map中删除键值对

Go的delete函数用于从map中删除指定键的元素,如果键为nil或不存在,函数不会执行任何操作。map本身非线程安全,因此在多线程环境下删除操作需额外注意。

目录

描述

语法和参数

使用示例

注意事项

删除不存在的key

删除的key为nil

线程安全


描述

delete函数是Go的内置函数,它按照指定的键将元素从map中删除。若要删除的键为 nil 或在map中不存在,delete 不进行任何操作。

语法和参数

函数签名

func delete(m map[Type]Type1, key Type)
参数名称含义
m要操作的map
key从m中要被移除的键

返回值:delete函数没有任何返回值。

使用示例

使用delete函数删除map中的键值对:

package main

import "fmt"

func main() {
	demo := make(map[string]interface{})
	demo["code"] = "Golang"
	demo["author"] = "Robert Griesemer"
	delete(demo, "author")
	fmt.Println(demo)
	// outputs: map[code:Golang]
}

注意事项

删除不存在的key

删除不存在的key时,delete不进行操作。

package main

import "fmt"

func main() {
	demo := make(map[string]interface{})
	delete(demo, "author")
	fmt.Println(demo)
	// outputs: map[]
}

删除的key为nil

删除的key为nil时,delete不进行操作。

package main

import "fmt"

func main() {
	demo := make(map[interface{}]interface{})
	demo["platform"] = "CentOS"
	delete(demo, nil)
	fmt.Println(demo)
	// outputs: map[platform:CentOS]
}

线程安全

delete函数本身不存在“线程安全”的问题,由于map数据结构本身不是线程安全的,所以使用delete删除map中的键值对也不是线程安全的。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值