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]