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\n", 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\n", 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]

  

 

posted @ 2019-01-09 16:28  努力哥  阅读(7658)  评论(0编辑  收藏  举报