map 基本使用

package main

import "fmt"

func main(){
    //定义一个map变量,类型为map[int]string,如果使用map一定初始化,make分配空间
    var m1 map[int]string = make(map[int]string)
    fmt.Println("m1=",m1)
    m1[1]= "jake"
    fmt.Println("m1=",m1)

    m2 := make(map[int]string) //make方式创建然后自动推导类型
    fmt.Println("len=",len(m2))
    m2[1] = "mike"
    fmt.Println("m2=",m2)
    fmt.Println("len=",len(m2))

    //map 先给map指定一个可以容纳长度,一旦超过这个长度 从新分配底层空间
    //
    m3 := make(map[int]string,2)
    m3[1]="mile"
    m3[2]="jack"
    m3[3]="go"
    fmt.Println("m3=",m3)
    fmt.Println("len=",len(m3))

    //map另一种初始化并且赋值
    m4 := map[int]string{1:"mike",2:"jack",3:"go"}
    fmt.Println("m4=",m4)
}

package main

import "fmt"

func main(){
    m1 := map[int]string{1:"mike",2:"jack"}
    fmt.Println("m1=",m1)

    m1[1]="marry"  //如果key存在,修改内容
    m1[3]="tom"    //如果没有key 追加内容,切片append
    fmt.Println("m1=",m1)
}
package main

import "fmt"

func main(){
    m := map[int]string{1:"mike",2:"jack",3:"tom"}
    //第一个返回值为key 第二个返回值为value 遍历结构是无序的
    for key,value :=range m{
        fmt.Printf("%d======>%s
",key,value)
    }

    //如何判断一个key是否存在,
    //第一个返回值为key的所对应的value,第二个返回值为key是否存在的条件,如果存在ok为true
    //value,ok := m[1]
    if value,ok := m[1];ok == true{
        fmt.Println("m[1]=",value)
    }else {
        fmt.Println("key 不存在")
    }

    delete(m,2) //删除key为2的内容
    fmt.Println("m=",m)

}
package main

import "fmt"

func test(m map[int]string)  { //map 和我们切片一样 他们是引用类型
    delete(m,1)
}

func main(){
    m :=map[int]string{1:"jack",2:"mike",3:"marry"}
    fmt.Println("m=",m)

    test(m)

    fmt.Println("m=",m)

}
原文地址:https://www.cnblogs.com/dqh123/p/12076315.html