GO語言內建型別map

2021-10-01 13:41:21 字數 1998 閱讀 4284

go語言中鍵不一定只能是 string 型別。所有可比較的型別,如 boolean,interger,float,complex,string 等,都可以作為鍵

go語言中的map是hash map 是無序的

第一種:這種空的 ==nil

var mapname map[keytype]valuetype

var m3 map[string]string

此種方式建立的map無法對它進行賦值 需要使用內建函式

第二種

建立乙個map,並且並且新增內容

mapname:=map[string]string

第三種

使用make建立map這種空的等於empty type 

mapname := make(map[keytype]valuetype)

m2 := make(map[string]string)

m2["aaa"] = "aaa"

fmt.println(m2)

package main

import

"fmt"

func

main()

fmt.

printf(,

&m1, m1)

//使用make()建立map

m2 :=

make

(map

[string

]string

) fmt.

println

("m2"

, m2)

fmt.

println

(m2 ==

nil)

// false make建立的map !=nil

//使用var 建立map 此種方式只是建立沒有初始化。建立後他的值為nil

var m3 map

[string

]string

fmt.

println

(m3 ==

nil)

//ture 建立後他的值為nil

//通過var 建立的map無法直接新增元素會報錯

//m3["name"] = "xiaoxingxing"

assignment to entry in nil map

//可以通過make()函式初始化即可新增元素

if m3 ==

nil m3[

"name"]=

"axing"

fmt.

println

("初始化m3後新增資料"

, m3)

}輸出結果

//m的內容:map[age:18 name:axing]

//m2 map

//false

//true

//初始化m3後新增資料 map[name:axing]

當訪問map不存在的key時會返回zero value	

func

main()

// fmt.

println

(m2[

"11"])

//會輸出乙個空串

//a, err := m2["11"] 因為沒有這個key所以會返回乙個false給err

err) //zero value false

}

如何判斷zero value (到底有沒有這個key)
package main

import

"fmt"

func

main()

fmt.

println

("**********====")//

if value, o := m2[

"a"]

; o

else

}

go語言內建基礎型別

1 數值型 number 三種 整數型 浮點型和虛數型 有符號整數表示整數範圍 2n 1 2n 1 1 無符號整數表示整數範圍 0 2n 1 go內建整型有 uint8,uint16,uint32,uint64,int8,int16,int32,int64。其中u開頭的型別就是無符號整型 無符號型別...

go語言 內建容器之map 九

var mmap map string string map string string var k,v string for k,v range mmap var value mmap a fmt.printf value s value v,ok mmap a fmt.printf v s,ok...

GO語言 對map型別的理解

package main import fmt type personinfo struct func main persondb 1 personinfo person,persondb 12345 fmt.println persondb,person 變數宣告 mymap 是宣告的map變數名...