Go速成無壓力【九】:映射(Maps)

(一)Maps

一個map是映射到鍵值對的
值爲 0 的map是 nil 值;一個nil 值的map並沒有keys , 也不能添加值;
make 函數可以返回一個被賦予類型,且被初始化準備可以投入使用的map

package main
import "fmt"
type vertex struct{
	x , y float64
}
var m map[string]Vertex

func main(){
	m = make(map[string]vertex)
	m["東風 不敗"] = vertex{
		120,40,
	}
	fmt.Println(m["東風"])
} 

在這裏插入圖片描述




(二)Map文法

Map字段有些像結構體文法,但是Map字段的值是必須的

package main

import "fmt"

type vertex struct {
	x, y float64
}

var m = map[string]vertex{
	"迪迦 泰羅": vertex{
		10.213, -34.98123,
	},
	"M78": Vertex{
		677.56202, 122.31408,
	},
}

func main() {
	fmt.Println(m)
}

在這裏插入圖片描述



(三)Map字段知識擴展

如果頂級類型只是一個類型名字,你可以忽略來自字段的元素的類型

package main
import "fmt"

type vertex struct{
	a,b string
}

var m = map[string]vertex{
	"迪迦奧特曼":{"他是一個奧特曼","而且人又帥"},
	"M78星雲":{"這是奧特曼的故鄉","名爲M78"},
}

func main(){
	fmt.Println(m)
}

在這裏插入圖片描述



(四)不同類型的映射

在映射 m 中插入或者升級一個元素

m[key] = elem

取回一個元素

elem = m[key]

刪除一個元素

delete(m,key)

使用兩個聲明的值去測試一個值

elem , ok = m[key]

如果key 是在 m 中,則ok 爲true , 否則爲 false
如果key 不是在map 中,那麼elem 是具有映射的類型的零值
如果 elem 或者 ok 任然沒有被聲明,你可以使用這樣的短聲明:

elem , ok := m[key]

實戰演示

package main
import "fmt"
func main(){
	m := make(map[string]int)
	m["編號"]=27
	fmt.Println("編號值爲:",m["編號"])
	m["編號"]=18
	fmt.Println("編號值爲:",m["編號"])
	delete(m,"編號")
	fmt.Println("編號值爲:",m["編號"])
	v , ok := m["編號"]
	fmt.Println("編號值爲:",v,"真假:",ok)
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章