zoukankan      html  css  js  c++  java
  • 【go学习笔记】七、Map声明、元素访问及遍历

    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
    

    示例代码请访问: https://github.com/wenjianzhang/golearning

  • 相关阅读:
    eclipse的快捷键【转载】
    eclipse调试断点【转载】
    eclipse打断点的调试
    Oracle存储过程的调试
    QT5线程关闭
    QT5 Thread线程
    QT5 文件读写操作
    QT5 Even 事件
    Qt 5 常用类及基本函数
    静态库lib、动态库dll基础
  • 原文地址:https://www.cnblogs.com/zhangwenjian/p/12512733.html
Copyright © 2011-2022 走看看