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

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

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

map的基本操作

map的定義方式

由于map是引用類型,所以在操作的時候,必須先初始化

方式一:

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的值得時候,可以接收兩個值,一個是獲取的值,一個是判斷是否存在的bool類型,如果存在,返回對應值,bool為true,不存在,返回對應類型的空值,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 的方法進行遍歷,獲取當中的值

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方法進行刪除

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),挨個刪除

map的長度

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

map的復制

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

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ù)組的時候,使用的時候,也需要先初始化

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)
	}
}

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

相關文章

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

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

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

    Go構建器模式構建復雜對象方法實例

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

    go 判斷兩個 slice/struct/map 是否相等的實例

    這篇文章主要介紹了go 判斷兩個 slice/struct/map 是否相等的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go擴展原語之SingleFlight的用法詳解

    Go擴展原語之SingleFlight的用法詳解

    Go語言擴展包同步原語singleflight.Group能夠再一個服務中抑制對下游的多次重復請求,它能夠限制對同一個鍵值對的多次重復請求,減少對下游的瞬時流量,接下來小編就給大家講講Go SingleFlight的具體用法,需要的朋友可以參考下
    2023-07-07
  • 使用golang在windows上設置全局快捷鍵的操作

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

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

    go開源Hugo站點構建三步曲之集結(jié)渲染

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

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

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

    一起來用GoLand開發(fā)第一個Go程序

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

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

    在?Go?語言中,切片拼接是一項常見的操作,但如果處理不當,可能會導致性能問題或意外的副作用,本文將詳細介紹幾種高效的切片拼接方法,希望對大家有所幫助
    2024-01-01
  • Golang 如何解析和生成json

    Golang 如何解析和生成json

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

最新評論

教育| 庆安县| 剑河县| 乳山市| 广德县| 通山县| 阳曲县| 呼图壁县| 西乌珠穆沁旗| 新巴尔虎右旗| 新绛县| 筠连县| 兰州市| 汕头市| 宁南县| 临沂市| 肥西县| 鹤庆县| 响水县| 合江县| 兴安盟| 井研县| 奈曼旗| 榆社县| 定日县| 宜良县| 湄潭县| 西林县| 天柱县| 肃宁县| 云和县| 准格尔旗| 策勒县| 健康| 莲花县| 长治县| 桦甸市| 广东省| 沙湾县| 临澧县| 潍坊市|