【go学习笔记】七、Map声明、元素访问及遍历
- 作者: 再被注册打死你
- 来源: 51数据库
- 2021-08-11
map声明
m := map[string]int{"one":1,"two":2,"three":3}
m1 := map[string]int{}
m1["one"] = 1
m2 := make(map[string]int, 10 /*initial capacity*/)
map元素的访问
在访问的key不存在时,仍会返回零值,不能通过返回nil来判断元素是否存在
func testaccessnotexistingkey(t *testing.t) {
m1 := map[int]int{}
t.log(m1[1])
m1[2] = 0
t.log(m1[2])
m1[3] = 0 //可以注释此行代码查看运行结果
if v,ok:=m1[3];ok{
t.logf("key 3's value is %d",v)
}else {
t.log("key 3 is not existing.")
}
}
输出
=== run testaccessnotexistingkey
--- pass: testaccessnotexistingkey (0.00s)
map_test.go:20: 0
map_test.go:22: 0
map_test.go:25: key 3's value is 0
pass
process finished with exit code 0
map 遍历
示例代码
m := map[string]int{"one":1,"two":2,"three":3}
for k, v := range m {
t.log(k, v)
}
func testtracelmap(t *testing.t) {
m1 := map[int]int{1: 1, 2: 4, 3: 9}
for k, v := range m1 {
t.log(k, v)
}
}
输出
=== run testtracelmap
--- pass: testtracelmap (0.00s)
map_test.go:34: 1 1
map_test.go:34: 2 4
map_test.go:34: 3 9
pass
process finished with exit code 0
示例代码请访问:
推荐阅读
