Go語言入門 map和指標

2021-10-02 22:30:56 字數 1078 閱讀 7232

map

宣告和初始化

方式一

rec :=

map[

string

]int

方式二
rec1 :=

make

(map

[string

]int

)rec1[

"width"]=

1rec1[

"height"]=

3

以上兩種宣告和初始化方式效果是一樣的,根據實際情況選用。試試訪問不存在的key看會怎樣?

fmt.

println

(rec[

"point"

])

結果會輸出:0,不會報錯!它返回了int的預設值:0。

key是否存在

那怎麼判斷乙個key到底是否存在呢?可如下實現:

if val, ok := rec[

"point"

]; ok

else

遍歷
for k, v :=

range rec

刪除key
delete

(rec,

"width"

)if val, ok := rec[

"width"

]; ok

else

指標

go作者之一是thompson,他發明了後來衍生出c語言的b程式語言,作為鼻祖,設計的新語言指標必須有。go裡的指標和c的指標語法使用上基本一樣,區別是go裡不能對指標進行算術運算。

func

pointers()

func

pointerparam

(p *

int)

func

newint()

*int

x :=

newint

()

指標和Map 指標和Map

指標和map 怎麼樣,看下來有點眼花繚亂吧,究竟這個pmap裡面存放的是什麼呢?為了搞清楚這個問題,我們還是要從指標入手。搞清楚什麼是指標,指標裡存放的是什麼內容指標是指向一塊記憶體中的儲存區域,指標中存放的是段記憶體的開始位址,是乙個整形資料,占用4個位元組,搞清楚這點後,對pmap或許應該有乙個...

go語言的array slice 和 map

陣列作為語言中必不可少的乙個存在,自然要關注,而slice 切片 是go語言對陣列的抽象。在go中,我們這樣宣告乙個陣列 var arr 10 int 賦值 arr 0 1 陣列大小是型別的一部分。由於不同的大小是不同的型別,因此不能改變大小 陣列同樣是值型別的 將乙個陣列賦值給另乙個陣列,會複製所...

Go 語言Map 集合

map 是一種無序的鍵值對的集合。map 最重要的一點是通過 key 來快速檢索資料,key 類似於索引,指向資料的值。map 是一種集合,所以我們可以像迭代陣列和切片那樣迭代它。不過,map 是無序的,我們無法決定它的返回順序,這是因為 map 是使用 hash 表來實現的。可以使用內建函式 ma...