go map学習

1973 ワード

map宣言のいくつかの方法
var a map [sting] int   //stringはkey値のタイプを表します  int value値のタイプを表す
var b map [int]  string   //int key値のタイプ、stringはvalue値のタイプを表します
var c map [string] string //stringが値を表すタイプstringがvalue値を表すタイプ
  • mapタイプの変数は、makeを使用してmapメモリ
  • を割り当てる必要があることを宣言する必要があります.
       列を示す
    package main
    import "fmt"
    
    func map1()  {
        var a map [string] int
        fmt.Println(a)
        // a["s1"] = 123
        // fmt.Println(a) //panic: assignment to entry in nil map
        if a ==nil{
        fmt.Println("map a nil ,need to format")
        a = make(map[string]int,16)  //map a nil ,need to format
        a["s1"] = 123
        a["s2"] = 23
        fmt.Println(a,len(a)) // map[s1:123 s2:23] 2
    }
    }
    
    
    func main()  {
        map1()
    } 
        
    }
  • map宣言時初期化
  • func map2()  {
        b :=map[string] string{
            "first": "mondany",
            "second" : "tuesday",
        }
       fmt.Printf("the map of b is %s",b) //    the map of b is map[first:mondany second:tuesday]
    }
    
    func main()  {
        map2()
    }
  • mapの基本動作
  • func map3()  {
        var c map[string] int
        c = make(map[string]int, 128)
        //     
        c["k1"]=1
        c["k2"]=2
        fmt.Println(c) //map[k1:1 k2:2]
        //     
        c["k1"]=11
        fmt.Println(c) //map[k1:11 k2:2]
        //     
        delete(c,"k1")
        fmt.Println(c) // map[k2:2]
    }
    
    func main()  {
        map3()
    }
  • mapのループ
  • func map4()  {
        d :=map[string] string{
            "first": "mondany",
            "second" : "tuesday",
            "third": "wedensday",
        }
        for key,value :=range d{
          fmt.Printf("%s=%s
    ",key,value)        //          first=mondany       second=tuesday       third=wedensday     } } func main()  {     map4() }
  • mapは要素にvalueが存在するか否かを判断し、ok=map[key]  keyが存在する場合true、存在しない場合false