修改映射

程序员成长之旅 · 程序员成长之旅/Go语言学习/笔记 · 350 字

修改映射

在映射 m 中插入或修改元素: m[key] = elem

获取元素: elem = m[key]

删除元素: delete(m, key)

通过双赋值检测某个键是否存在: elem, ok = m[key]

若 key 在 m 中, ok 为 true ;否则, ok 为 false 。(其实就是true为存在,false为不存在)

若 key 不在映射中,那么 elem 是该映射元素类型的零值。

同样的, 当从映射中读取某个不存在的键时,结果是映射的元素类型的零值。

注 :若 elem 或 ok 还未声明,你可以使用短变量声明: elem, ok := m[key] package main import "fmt" func main() { m := make(map[string]int) m["Answer"] = 42 fmt.Println("The value:", m["Answer"]) m["Answer"] = 48 fmt.Println("The value:", m["Answer"]) delete(m, "Answer")//这里删除了"Answer"键 所以现在"Answer"是不存在的,所以返回 0 fmt.Println("The value:", m["Answer"]) v, ok := m["Answer"] fmt.Println("The value:", v, "Present?", ok) } //结果 The value: 42 The value: 48 The value: 0 The value: 0 Present? false

1 package

main 2 3 import

"fmt" 4 5 func

main () { 6

m :

make ( map [ string ] int ) 7 8

m [ "Answer" ]

42 9

fmt . Println ( "The value:" , m [ "Answer" ]) 10 11

m [ "Answer" ]

48 12

fmt . Println ( "The value:" , m [ "Answer" ]) 13 14

delete ( m , "Answer" ) //这里删除了"Answer"键 所以现在"Answer"是不存在的,所以返回 0 15

fmt . Println ( "The value:" , m [ "Answer" ]) 16 17

v , ok :

m [ "Answer" ] 18

fmt . Println ( "The value:" , v , "Present?" , ok ) 19 } 20 //结果 21 The

value : 42 22 The

value : 48 23 The

value : 0 24 The

value : 0

Present?

false