Go语言中如何为map[string]interface{}类型对象的指定键设置新值?
解决方法:给
map[string]interface{}的键设置新值 其实操作起来很简单!既然你已经把bdoc断言成了map[string]interface{}类型,直接通过键名赋值就能修改它的内容——毕竟Go里的map是引用类型,赋值会直接作用于原map。
完整代码示例(带安全检查)
// 先安全断言类型,避免类型不匹配导致panic userMap, ok := bdoc.(map[string]interface{}) if !ok { // 这里可以根据业务需求处理错误,比如返回error或者打日志 panic("bdoc的类型不是预期的map[string]interface{}") } // 给"pk"键设置字符串类型的"1234567" userMap["pk"] = "1234567"
补充说明
- 你之前用
bdoc.(map[string]interface{})["pk"]是读取键值的操作,而修改只需要在这个表达式后面加上赋值即可。 - 强烈建议加上
ok的安全检查,这是Go里处理类型断言的最佳实践,能避免程序因意外的类型不匹配崩溃。 - 如果图省事不想单独存变量,也可以直接链式操作(但不推荐,因为没有错误处理):
bdoc.(map[string]interface{})["pk"] = "1234567"
内容的提问来源于stack exchange,提问作者Miljan Rakita
相关产品推荐
相关产品推荐

