• go语言基础之map赋值、遍历、删除 、做函数参数


    1、map赋值

    示例:

    package main //必须有个main包
    
    import "fmt"
    
    func main() {
    	m1 := map[int]string{1: "mike", 2: "yoyo"}
    	//赋值,如果已经存在的key值,修改内容
    	fmt.Println("m1 = ", m1)
    	m1[1] = "c++"
    	m1[3] = "go" //追加,map底层自动扩容,和append类似
    	fmt.Println("m1 = ", m1)
    }
    

    执行结果:

    m1 =  map[2:yoyo 1:mike]
    m1 =  map[1:c++ 2:yoyo 3:go]
    

      

    2、map遍历

    示例1:

    package main //必须有个main包
    
    import "fmt"
    
    func main() {
    	m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
    
    	//第一个返回值为key, 第二个返回值为value, 遍历结果是无序的
    	for key, value := range m {
    		fmt.Printf("%d =======> %s
    ", key, value)
    	}
    }
    

    执行结果:

    3 =======> go
    1 =======> mike
    2 =======> yoyo
    

    3、map 判断一个key值是否存在

    示例2:

    package main //必须有个main包
    
    import "fmt"
    
    func main() {
    	m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
    
    	//第一个返回值为key, 第二个返回值为value, 遍历结果是无序的
    	for key, value := range m {
    		fmt.Printf("%d =======> %s
    ", key, value)
    	}
    
    	//如何判断一个key值是否存在
    	//第一个返回值为key所对应的value, 第二个返回值为key是否存在的条件,存在ok为true
    	//value, ok := m[1]   //已经存在的value
    	value, ok := m[0] //key不存在
    	if ok == true {
    		fmt.Println("m[1] = ", value)
    	} else {
    		fmt.Println("key不存在")
    	}
    }
    

    执行结果:

    1 =======> mike
    2 =======> yoyo
    3 =======> go
    key不存在
    

      

    4、map删除

    示例4:

    package main //必须有个main包
    
    import "fmt"
    
    func main() {
    	m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
    	fmt.Println("m = ", m)
    
    	delete(m, 1) //删除key为1的内容
    	fmt.Println("m = ", m)
    }
    

    执行结果:

    m =  map[2:yoyo 3:go 1:mike]
    m =  map[2:yoyo 3:go]
    

    5、map做函数参数

    示例5:

    package main //必须有个main包
    
    import "fmt"
    
    //{1: "mike", 2: "yoyo", 3: "go"} 
    func test(m map[int]string) {
    	delete(m, 1)   //删除1个
    
    func main() {
    	m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
    	fmt.Println("m = ", m)
    
    	test(m) //在函数内部删除某个key
    
    	fmt.Println("m = ", m)
    }
    

    执行结果:

    m =  map[1:mike 2:yoyo 3:go]
    m =  map[2:yoyo 3:go]
    

      

  • 相关阅读:
    深度探索C++对象模型之第一章:关于对象之对象的差异
    深度探索C++对象模型之第一章:关于对象之关键词所引起的差异
    C++之constexpr
    STL之空间配置器
    10泛型算法
    C++之指针与数组区别
    数学 之 hdu 4861
    贪心 之 hdu 4864
    01背包(求前一个的最大价值-->求前K个的最大价值) 之 hdu 2639
    01背包(体积为负,改变区间) 之 poj 2184
  • 原文地址:https://www.cnblogs.com/nulige/p/10245204.html
Copyright © 2020-2023  润新知