Open hic003cih opened 4 years ago
package main import "fmt" func main() { m := make(map[string]int) m["Answer"] = 42 fmt.Println("The value:", m["Answer"]) m["Answer"] = 48 fmt.Println("The value:", m["Answer"]) delete(m, "Answer") fmt.Println("The value:", m["Answer"]) v, ok := m["Answer"] fmt.Println("The value:", v, "Present?", ok) }
創造一個map m := make(map[string]int) make裡面放一個map map的第一個[]是key值(索引) 後面的一個參數是放值得類型(如果要放數字,就用int)
插入值或修改值 m["Answer"] = 42 m的Answer元素的值就是42
取的值 v := m["Answer"] v 的值就是 42
刪除值 delete(m, "Answer") 第一個放m放的是map元素,後面放key值(索引),去搜尋map中的那個元素
確認index是否存在 v, ok := m["Answer"] fmt.Println("The value:", v, "Present?", ok)
輸出結果 : The value: 0 Present? false
if causeName, ok := m["cause"]; ok{ // 不存在的 key 为 Zero value fmt.Println(causeName) } else { fmt.Println("key does not exist") }
當 key 不再該 map 中, 則會輸出該元素類型的零值 並且ok輸出為false,如果存在則為true
循環取出map中的每一個值 使用range來對每個key值做迴圈 也可以對value做迴圈 但不保證是按照順序,如果要按照順序,要手動對key做排序 for k,v := range m { fmt.Println(k, v) }
使用len 來取得元素的數量
除了slice,map,function 外的內建類型都可以當key Struct類型不包含上面的字段也可以作為key
創造一個map m := make(map[string]int) make裡面放一個map map的第一個[]是key值(索引) 後面的一個參數是放值得類型(如果要放數字,就用int)
插入值或修改值 m["Answer"] = 42 m的Answer元素的值就是42
取的值 v := m["Answer"] v 的值就是 42
刪除值 delete(m, "Answer") 第一個放m放的是map元素,後面放key值(索引),去搜尋map中的那個元素
確認index是否存在 v, ok := m["Answer"] fmt.Println("The value:", v, "Present?", ok)
輸出結果 : The value: 0 Present? false
if causeName, ok := m["cause"]; ok{ // 不存在的 key 为 Zero value fmt.Println(causeName) } else { fmt.Println("key does not exist") }
當 key 不再該 map 中, 則會輸出該元素類型的零值 並且ok輸出為false,如果存在則為true