go語言基礎之map介紹和使用


1、map介紹

Go語言中的map(映射、字典)是一種內置的數據結構,它是一個無序的key—value對的集合,比如以身份證號作為唯一鍵來標識一個人的信息。

2、map示例

 

 

map格式為:

    map[keyType]valueType

在一個map里所有的鍵都是唯一的,而且必須是支持==和!=操作符的類型,切片、函數以及包含切片的結構類型這些類型由於具有引用語義,不能作為映射的鍵,使用這些類型會造成編譯錯誤:

    dict := map[ []string ]int{} //err, invalid map key type []string

map值可以是任意類型,沒有限制。map里所有鍵的數據類型必須是相同的,值也必須如何,但鍵和值的數據類型可以不相同。

 注意:map是無序的,我們無法決定它的返回順序,所以,每次打印結果的順利有可能不同。

 

3、map的使用

示例2:

package main //必須有個main包

import "fmt"

func main() {
	//定義一個變量, 類型為map[int]string
	var m1 map[int]string
	fmt.Println("m1 = ", m1)
	//對於map只有len,沒有cap
	fmt.Println("len = ", len(m1))

	//可以通過make創建
	m2 := make(map[int]string)
	fmt.Println("m2 = ", m2)
	fmt.Println("len = ", len(m2))

	//可以通過make創建,可以指定長度,只是指定了容量,但是里面卻是一個數據也沒有
	m3 := make(map[int]string, 2) //指定容量為2(0 1 2),會自動擴沖
	m3[1] = "mike"                //元素的操作
	m3[2] = "go"
	m3[3] = "c++"

	fmt.Println("m3 = ", m3)
	fmt.Println("len = ", len(m3))

    //常用方法,推薦使用
	//初始化
	//鍵值是唯一的
	m4 := map[int]string{1: "mike", 2: "go", 3: "c++"}
	fmt.Println("m4 = ", m4)

}

執行結果:

m1 =  map[]

len =  0

m2 =  map[]

len =  0

m3 =  map[1:mike 2:go 3:c++ 4:python]

len =  4

//常用方法,推薦使用
m4 = map[1:mike 2:go 3:c++]

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM