最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang map的基本操作及定義方式

 更新時(shí)間:2022年08月31日 15:25:03   作者:S前進(jìn)的中浪S  
這篇文章主要介紹了golang-map的基本操作,由于map是引用類(lèi)型,所以在操作的時(shí)候,必須先初始化,本文通過(guò)多種方式給大家講解map的定義方式,需要的朋友可以參考下

map的基本操作

map的定義方式

由于map是引用類(lèi)型,所以在操作的時(shí)候,必須先初始化

方式一:

var a map[string]int
	a = make(map[string]int, 16)
	fmt.Printf("a = %#v \n", a)
	a["stu01"] = 1000

方式二:

a := map[string]int{
		"stu01": 100,
		"stu03": 300,
		"stu02": 200,
	}
	fmt.Printf("a = %#v \n", a)

判斷key是否存在

在獲取map的值得時(shí)候,可以接收兩個(gè)值,一個(gè)是獲取的值,一個(gè)是判斷是否存在的bool類(lèi)型,如果存在,返回對(duì)應(yīng)值,bool為true,不存在,返回對(duì)應(yīng)類(lèi)型的空值,bool為false

func test3() {
	var a map[string]int
	a = make(map[string]int, 16)
	fmt.Printf("a = %#v \n", a)
	a["stu01"] = 1000
	a["stu02"] = 2000
	var result int
	var ok bool
	var key string = "stu04"
	result, ok = a[key]
	if ok == false {
		fmt.Printf("key is %s is not exist\n", key)
	} else {
		fmt.Printf("key is %s = %d \n", key, result)
	}
}

map的遍歷key,value

使用for ... range 的方法進(jìn)行遍歷,獲取當(dāng)中的值

func test4() {
	rand.Seed(time.Now().UnixNano())

	var a map[string]int
	a = make(map[string]int, 1024)
	for i := 0; i < 128; i++ {
		key := fmt.Sprintf("stu%d", i)
		value := rand.Intn(1000)
		a[key] = value
	}
	for key, value := range a {
		fmt.Printf("map[%s]=%d\n", key, value)
	}
}

map刪除元素

使用內(nèi)置的delete方法進(jìn)行刪除

func test5() {
	var a map[string]int
	a = make(map[string]int, 16)
	fmt.Printf("a = %#v \n", a)
	a["stu01"] = 1000
	a["stu02"] = 2000
	a["stu03"] = 3000
	fmt.Printf("a = %#v \n", a)
	delete(a, "stu02")
	fmt.Printf("DEL after a = %#v \n", a)
}

刪除所有的,需要用for循環(huán),挨個(gè)刪除

map的長(zhǎng)度

使用len內(nèi)置函數(shù)求出

map的復(fù)制

map是引用類(lèi)型,在系統(tǒng)中,復(fù)制的時(shí)候,指向的內(nèi)存地址是一樣的,所以修改一個(gè),其他的也會(huì)跟著變更

func test6() {
	var a map[string]int
	if a == nil {
		a = make(map[string]int, 16)
		a["stu01"] = 1000
		a["stu02"] = 2000
		a["stu03"] = 3000
		fmt.Printf("a = %#v \n", a)
		b := a
		b["stu01"] = 8888
		fmt.Printf("after modify a : %#v\n", a)
	}
}

map的切片

由于map的value可以是數(shù)組,或者int,所以在value是數(shù)組的時(shí)候,使用的時(shí)候,也需要先初始化

func main() {
	rand.Seed(time.Now().UnixNano())
	var s []map[string]int
	s = make([]map[string]int, 5, 16)
	for index, value := range s {
		fmt.Printf("slice[%d] = %v \n", index, value)
	}
	fmt.Println()
	s[0] = make(map[string]int, 16)
	s[0]["stu01"] = 1000
	s[0]["stu02"] = 2000
	s[0]["stu03"] = 3000
	for index, value := range s {
		fmt.Printf("slice[%d] = %v \n", index, value)
	}
}

到此這篇關(guān)于golang-map的基本操作的文章就介紹到這了,更多相關(guān)golang map內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談go中切片比數(shù)組好用在哪

    淺談go中切片比數(shù)組好用在哪

    數(shù)組和切片都是常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),本文將介紹Go語(yǔ)言中數(shù)組和切片的基本概念,同時(shí)詳細(xì)探討切片的優(yōu)勢(shì),感興趣的可以了解下
    2023-06-06
  • Go構(gòu)建器模式構(gòu)建復(fù)雜對(duì)象方法實(shí)例

    Go構(gòu)建器模式構(gòu)建復(fù)雜對(duì)象方法實(shí)例

    本文介紹了構(gòu)建器模式,如何通過(guò)構(gòu)建器對(duì)象構(gòu)建復(fù)雜業(yè)務(wù)對(duì)象的方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例

    go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例

    這篇文章主要介紹了go 判斷兩個(gè) slice/struct/map 是否相等的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Go擴(kuò)展原語(yǔ)之SingleFlight的用法詳解

    Go擴(kuò)展原語(yǔ)之SingleFlight的用法詳解

    Go語(yǔ)言擴(kuò)展包同步原語(yǔ)singleflight.Group能夠再一個(gè)服務(wù)中抑制對(duì)下游的多次重復(fù)請(qǐng)求,它能夠限制對(duì)同一個(gè)鍵值對(duì)的多次重復(fù)請(qǐng)求,減少對(duì)下游的瞬時(shí)流量,接下來(lái)小編就給大家講講Go SingleFlight的具體用法,需要的朋友可以參考下
    2023-07-07
  • 使用golang在windows上設(shè)置全局快捷鍵的操作

    使用golang在windows上設(shè)置全局快捷鍵的操作

    最近在工作中,總是重復(fù)的做事,想著自己設(shè)置一個(gè)快捷鍵實(shí)現(xiàn)windows 剪貼板的功能,所以本文小編給大家分享了使用golang在windows上設(shè)置全局快捷鍵的操作,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-02-02
  • go開(kāi)源Hugo站點(diǎn)構(gòu)建三步曲之集結(jié)渲染

    go開(kāi)源Hugo站點(diǎn)構(gòu)建三步曲之集結(jié)渲染

    這篇文章主要為大家介紹了go開(kāi)源Hugo站點(diǎn)構(gòu)建三步曲之集結(jié)渲染詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • go實(shí)現(xiàn)冒泡排序算法

    go實(shí)現(xiàn)冒泡排序算法

    冒泡排序算法是數(shù)據(jù)結(jié)構(gòu)中常用的一種算法,本文就介紹了go實(shí)現(xiàn)冒泡排序算法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 一起來(lái)用GoLand開(kāi)發(fā)第一個(gè)Go程序

    一起來(lái)用GoLand開(kāi)發(fā)第一個(gè)Go程序

    當(dāng)您在編輯器中工作時(shí)GoLand 會(huì)分析您的代碼,尋找優(yōu)化方法,并檢測(cè)潛在和實(shí)際問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于用GoLand開(kāi)發(fā)第一個(gè)Go程序的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 詳解Go中的高效切片拼接和Go1.22提供的新方法

    詳解Go中的高效切片拼接和Go1.22提供的新方法

    在?Go?語(yǔ)言中,切片拼接是一項(xiàng)常見(jiàn)的操作,但如果處理不當(dāng),可能會(huì)導(dǎo)致性能問(wèn)題或意外的副作用,本文將詳細(xì)介紹幾種高效的切片拼接方法,希望對(duì)大家有所幫助
    2024-01-01
  • Golang 如何解析和生成json

    Golang 如何解析和生成json

    這篇文章主要介紹了Golang 如何解析和生成json,幫助大家更好的理解和學(xué)習(xí)golang,感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論

和龙市| 延川县| 开远市| 白沙| 孟州市| 育儿| 睢宁县| 凤台县| 钟山县| 镇巴县| 万盛区| 锦屏县| 九龙城区| 平阴县| 东辽县| 宜春市| 陇川县| 新巴尔虎右旗| 定陶县| 焦作市| 平安县| 阿克苏市| 天祝| 库车县| 波密县| 平江县| 东莞市| 章丘市| 宁陕县| 河源市| 建湖县| 苍南县| 富川| 腾冲县| 咸宁市| 长垣县| 临猗县| 六枝特区| 永泰县| 霍城县| 宜黄县|