TreeviewCopyright © aleen42 all right reserved, powered by aleen42

map

    n := make(map[string]int)
    aa ,ok := n["abc"]
    fmt.Println(ok,aa)

    n["abc"]++
    fmt.Println(n["abc"])
    _ ,ok = n["abc"]
    fmt.Println(ok)

输出

false 0
1
true

如果不存在会给定一个初始值0,所以下面的++可以直接使用。

sync map

package main

import (
    "sync"
    "fmt"
)

func main() {

    n := make(map[string]int)
    aa ,ok := n["abc"]
    fmt.Println(ok,aa)

    n["abc"]++
    fmt.Println(n["abc"])
    _ ,ok = n["abc"]
    fmt.Println(ok)

    list := map[string]interface{}{
        "name":          "田馥甄",
        "birthday":      "1983年3月30日",
        "age":           34,
        "hobby":         []string{"听音乐", "看电影", "电视", "和姐妹一起讨论私人话题"},
        "constellation": "白羊座",
        "tag":            34,
    }

    var m sync.Map
    for k, v := range list {
        m.Store(k, v)
    }

    var wg sync.WaitGroup
    wg.Add(2)
    go func() {
        m.Store("age", 22)
        actual, ok := m.LoadOrStore("tag", 8888)
        fmt.Println(actual,ok)
        wg.Done()
    }()

    go func() {
        m.Delete("constellation")
        m.Store("age", 18)
        wg.Done()
    }()

    wg.Wait()

    m.Range(func(key, value interface{}) bool {
        fmt.Println(key, value)
        return true
    })
}

通过Store和LoadOrStore装载数据,通过Delete删除数据,通过Range遍历数据

results matching ""

    No results matching ""