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]

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM