golang的map

map--字典

map的基本使用:python

package main

import "fmt"

// 先聲明

type PersonInfo struct {
    id string
    name string
    addr string
}
func main()  {
    // map是一堆鍵值對的未排序集合,就像python中的字典同樣
    var PersonDB map[string] PersonInfo
    PersonDB = make(map[string] PersonInfo)

    //往map中插入幾條數據
    PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
    PersonDB["zhang"] = PersonInfo{"002","zhang","xiushui"}

    // 從map中取數據,查找關鍵字爲"wualin"的數據
    person1 := PersonDB["wualin"]
    fmt.Println(person1)
    fmt.Println(person1.name) // 經過 . 取map中的數據

    person2,ok := PersonDB["zhang"]
    if ok{// ok是一個返回的bool類型,返回True則表示找到了對應的數據
        fmt.Println(person2)
    } else{
        fmt.Println("沒有找到zhang...")
    }
}
  • 變量聲明

map的聲明基本上沒有多餘的元素,好比:函數

var PersonDB map[string] PersonInfo

PersonDB是map變量名,string是鍵的類型,PersionInfo則是其中存放值的類型ui

  • 建立:

使用go語言內置的函數make()來建立一個新map,例:code

PersonDB = make(map[string] PersonInfo)

也能夠選擇是否在建立時置頂該map的初始存儲能力,例:排序

PersonDB = make(map[string] PersonInfo,100)

建立並初始化map,例:string

PersionDB = map[string] PersionInfo{
"1234":PersionInfo{"1","wualin","xinyu"}
    }
}
  • 元素賦值
PersonDB["wualin"] = PersonInfo{"001","wualin","xinyu"}
  • 元素刪除

Go語言提供了一個內置函數delete(),用於刪除容器內的元素io

delete(PersionDB,"wualin")

若是鍵"wualin"不存在,那麼這個調用將什麼都不會發生import

  • 元素查找

根據關鍵字從map取數據,例:容器

value,ok := PersionDB["wualin"]
if ok{ // 找到了
    // 處理找到的value
    }
    
}

使用ok能夠快速檢查是否找到數據,不須要去判斷value是否爲空變量

相關文章
相關標籤/搜索