Golang中map的三種聲明定義方式實(shí)現(xiàn)
定義
map,在golang中定義為map[string][string],類比為python中的dict,內(nèi)部實(shí)現(xiàn)也是通過哈希存儲的,內(nèi)部的元素是無序的。
方式1:
* 通過 var xx map[type]type,來進(jìn)行聲明一個(gè)map;
此時(shí)的myMap是一個(gè)空變量,為開辟實(shí)際空間進(jìn)行賦值,是一個(gè)空占8字節(jié)的變量;
需要通過make(map[string]string),以聲明的類型為準(zhǔn),進(jìn)行空間開辟,后續(xù)才可以進(jìn)行賦值,否則會(huì)報(bào)越界錯(cuò)誤;


方式2:
通過直接x:=make(map[string]string),不需要先定義一個(gè)map類型的空變量,因?yàn)閙ake內(nèi)置方法會(huì)根據(jù)你傳入的類型,返回具體類型,通過:=來接收。

方式3:
初始化方式創(chuàng)建map;
這種方法用的比較多,不需要make去申請內(nèi)存分配;通過定義一個(gè)map類型變量并初始化,可以動(dòng)態(tài)開辟內(nèi)存,并賦值;
* 細(xì)節(jié),map內(nèi)部最后一個(gè)元素末尾要帶逗號,這是go語法規(guī)定;

使用:
總的來說,使用也是通過key:value,以O(shè)(1)的復(fù)雜度在數(shù)據(jù)體中查詢值,特別需要注意,對于map,可以簡單理解為,通過類型的指定,map在函數(shù)中的傳遞可以理解為是"引用傳遞",即可以通過指針尋址,對指定值進(jìn)行修改;

到此這篇關(guān)于Golang中map的三種聲明定義方式實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Golang map聲明定義內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
優(yōu)雅使用GoFrame共享變量Context示例詳解
這篇文章主要為大家介紹了優(yōu)雅使用GoFrame共享變量Context示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解
這篇文章主要為大家介紹了GoFrame實(shí)現(xiàn)順序性校驗(yàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Goland IDEA項(xiàng)目多開設(shè)置方式
這篇文章主要介紹了Goland IDEA項(xiàng)目多開設(shè)置方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
詳解Go語言如何利用高階函數(shù)寫出優(yōu)雅的代碼
高階函數(shù)(Hiher-order?Function)定義為:滿足下列條件之一的函數(shù):接收一個(gè)或多個(gè)函數(shù)作為參數(shù);返回值是一個(gè)函數(shù)。本文為大家介紹了如何利用高階函數(shù)寫出優(yōu)雅的代碼,希望對大家有所幫助2023-01-01
GoFrame框架gset使用對比PHP?Java?Redis優(yōu)勢
這篇文章主要為大家介紹了GoFrame框架gset對比PHP?Java?Redis的使用優(yōu)勢詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

