Golang中map的三種聲明定義方式實(shí)現(xiàn)
定義
map,在golang中定義為map[string][string],類比為python中的dict,內(nèi)部實(shí)現(xiàn)也是通過(guò)哈希存儲(chǔ)的,內(nèi)部的元素是無(wú)序的。
方式1:
* 通過(guò) var xx map[type]type,來(lái)進(jìn)行聲明一個(gè)map;
此時(shí)的myMap是一個(gè)空變量,為開(kāi)辟實(shí)際空間進(jìn)行賦值,是一個(gè)空占8字節(jié)的變量;
需要通過(guò)make(map[string]string),以聲明的類型為準(zhǔn),進(jìn)行空間開(kāi)辟,后續(xù)才可以進(jìn)行賦值,否則會(huì)報(bào)越界錯(cuò)誤;
方式2:
通過(guò)直接x:=make(map[string]string),不需要先定義一個(gè)map類型的空變量,因?yàn)閙ake內(nèi)置方法會(huì)根據(jù)你傳入的類型,返回具體類型,通過(guò):=來(lái)接收。
方式3:
初始化方式創(chuàng)建map;
這種方法用的比較多,不需要make去申請(qǐng)內(nèi)存分配;通過(guò)定義一個(gè)map類型變量并初始化,可以動(dòng)態(tài)開(kāi)辟內(nèi)存,并賦值;
* 細(xì)節(jié),map內(nèi)部最后一個(gè)元素末尾要帶逗號(hào),這是go語(yǔ)法規(guī)定;
使用:
總的來(lái)說(shuō),使用也是通過(guò)key:value,以O(shè)(1)的復(fù)雜度在數(shù)據(jù)體中查詢值,特別需要注意,對(duì)于map,可以簡(jiǎn)單理解為,通過(guò)類型的指定,map在函數(shù)中的傳遞可以理解為是"引用傳遞",即可以通過(guò)指針尋址,對(duì)指定值進(jìn)行修改;
到此這篇關(guān)于Golang中map的三種聲明定義方式實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Golang map聲明定義內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Go語(yǔ)言學(xué)習(xí)技巧之命名規(guī)范
最近在學(xué)習(xí)go語(yǔ)言,發(fā)現(xiàn)了不少需要整理的知識(shí)點(diǎn),所以整理下分享出來(lái),下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言學(xué)習(xí)技巧之命名規(guī)范的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-12-12golang微服務(wù)框架基礎(chǔ)Gin基本路由使用詳解
這篇文章主要為大家介紹了golang微服務(wù)框架Gin基本路由的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11Golang實(shí)現(xiàn)Directional Channel(定向通道)
這篇文章主要介紹了Golang實(shí)現(xiàn)Directional Channel(定向通道),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02Go標(biāo)準(zhǔn)庫(kù)strconv實(shí)現(xiàn)string類型與其他基本數(shù)據(jù)類型之間轉(zhuǎn)換
這篇文章主要為大家介紹了Go標(biāo)準(zhǔn)庫(kù)strconv實(shí)現(xiàn)string類型與其他基本數(shù)據(jù)類型之間轉(zhuǎn)換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11詳解Golang實(shí)現(xiàn)http重定向https的方式
這篇文章主要介紹了詳解Golang實(shí)現(xiàn)http重定向https的方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08