맵 / 사전

3642 단어 mapgo 기초/응용
key - value 의 데이터 구 조 는 사전 이나 관련 배열 이 라 고도 합 니 다 (map 는 무질서 합 니 다)
설명:
var map1 map[keytype]valuetype
var a map[string]string
var a map[string]int
var a map[int]string
var a map[string]map[string]string

메모 리 를 할당 하지 않 습 니 다. 초기 화 하려 면 make 가 필요 합 니 다.
생 성 방법:
package main

import "fmt"

func main() {
    a := make(map[string]string, 10)
    fmt.Println(a)
    a["a"] = "aa"
    a["b"] = "bb"
    fmt.Println(a)
    var b map[string]string = map[string]string {
        "b1": "v1",
        "b2": "v2",
    }
    fmt.Println(b)
    var c = map[string]string {
        "c1": "v1",
        "c2": "v2",
    }
    fmt.Println(c)
    d := map[string]string {
        "d1": "v1",
        "d2": "v2",
    }
    fmt.Println(d)
}

출력: map [] map [a: aa b: bb] map [b1: v1 b2: v2] map [c1: v1 c2: v2] map [d1: v1 d2: v2]
Process finished with exit code 0
map 관련 동작:
var a map[string]string = map[string]string{“hello”: “world”}
a = make(map[string]string, 10)
a[“hello”] = “world”//     
Val, ok := a[“hello”]//  
for k, v := range a {//  
fmt.Println(k,v)
}
delete(a, “hello”)//  
len(a)//  

예:
func modify(a map[string]map[string]string) {
    _, ok := a["zhangsan"]
    if !ok {
        //      ( map   ) 
        a["zhangsan"] = make(map[string]string)
    }
    a["zhangsan"]["passwd"] = "123456"
    a["zhangsan"]["nickname"] = "pangpang"
    return
}
func testMap3() {
    a := make(map[string]map[string]string, 100)
    modify(a)
    fmt.Println(a)
}
func main() {
    testMap3()
}

맵 으로 옮 겨 다 니 는 맵:
package main

import "fmt"

func trans(a map[string]map[string]string) {
    for k, v := range a {
        fmt.Println(k)
        for k1, v1 := range v {
            fmt.Println("\t", k1, v1)
        }
    }
}

func main() {
    a := make(map[string]map[string]string, 100)
    a["key1"] = make(map[string]string)
    a["key1"]["key2"] = "abc"
    a["key1"]["key3"] = "abc"
    a["key1"]["key4"] = "abc"
    a["key1"]["key5"] = "abc"

    a["key2"] = make(map[string]string)
    a["key2"]["key2"] = "abc"
    a["key2"]["key3"] = "abc"

    trans(a)
    delete(a, "key1")
    fmt.Println()
    trans(a)

    fmt.Println(len(a))
}

출력: key1key 2 abckey 3 abckey 4 abckey 5 abckey2key 2 abckey 3 abc
key2key2 abckey3 abc1
Process finished with exit code 0map 는 참조 형식 입 니 다.
func modify(a map[string]int) {
a[“one”] = 134
}

slice of map:
Items := make([]map[int][int], 5)
For I := 0; I < 5; i++ {
        items[i] = make(map[int][int])
}

map 정렬:
a.      key, key    
b.       key,    

map 반전:
a.        map, key、value    

map 의 값 도 map 일 수 있 습 니 다.
a := make(map[string]map[string]string, 10)
    /*//  !    map[string]string       
    a["k1"]["k2"] = "  "
    fmt.Println(a)*/
    //    map[string]string       !
    a["k1"] = make(map[string]string)
    a["k1"]["k2"] = "  "
    a["k1"]["k3"] = "  "
    a["k1"]["k4"] = "  "
    fmt.Println(a)

좋은 웹페이지 즐겨찾기