Map

key-value pair ,相當於javascript 的 object、python的dictionary

不過一個map的所有key都要是相同type,所有value也要是相同type(key跟value不用一樣)

Screen Shot 2021-12-28 at 10.47.50 PM.png

package main

import "fmt"

func main() {
	colors := map[string]string{
		"red" : "#ff0000",
		"green" : "#00ff00",
		"blue" : "#0000ff",
	}
	fmt.Println(colors)
}

// map[red:#ff0000 green:#00ff00 blue:#0000ff]

其他建立amp的方法 (沒有給值,所以go會預設給 該型別的zero value,string的話就是””)

// 這裏key用int,跟前面不同
var color map[int]string

color := make(map[int]string)

給值(只能用中括號,不能用點點,因為key的型別要對)

// 正確
color[1] = "#ffffff"

// 錯誤
color.1 = "#ffffff"

刪除值 用內建的delete function

第一個參數map、第二個參數key

delete(color, 1)

iterating over maps

基本上跟iterate slice一樣,只是宣告變數的部分第一個是key,第二個是value

Screen Shot 2021-12-28 at 11.39.34 PM.png