golangmap的基本操作及定義方式_第1頁
golangmap的基本操作及定義方式_第2頁
golangmap的基本操作及定義方式_第3頁
golangmap的基本操作及定義方式_第4頁
golangmap的基本操作及定義方式_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第golangmap的基本操作及定義方式目錄map的基本操作map的定義方式方式一:方式二:判斷key是否存在map的遍歷key,valuemap刪除元素map的長度map的復(fù)制map的切片

map的基本操作

map的定義方式

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

方式一:

varamap[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類型,如果存在,返回對應(yīng)值,bool為true,不存在,返回對應(yīng)類型的空值,bool為false

functest3(){

varamap[string]int

a=make(map[string]int,16)

fmt.Printf("a=%#v\n",a)

a["stu01"]=1000

a["stu02"]=2000

varresultint

varokbool

varkeystring="stu04"

result,ok=a[key]

ifok==false{

fmt.Printf("keyis%sisnotexist\n",key)

}else{

fmt.Printf("keyis%s=%d\n",key,result)

}

map的遍歷key,value

使用for...range的方法進(jìn)行遍歷,獲取當(dāng)中的值

functest4(){

rand.Seed(time.Now().UnixNano())

varamap[string]int

a=make(map[string]int,1024)

fori:=0;i128;i++{

key:=fmt.Sprintf("stu%d",i)

value:=rand.Intn(1000)

a[key]=value

forkey,value:=rangea{

fmt.Printf("map[%s]=%d\n",key,value)

}

map刪除元素

使用內(nèi)置的delete方法進(jìn)行刪除

functest5(){

varamap[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("DELaftera=%#v\n",a)

}

刪除所有的,需要用for循環(huán),挨個刪除

map的長度

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

map的復(fù)制

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

functest6(){

varamap[string]int

ifa==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("aftermodifya:%#v\n",a)

}

map的切片

由于map的value可以是數(shù)組,或者int,所以在value是數(shù)組的時候,使用的時候,也需要先初始化

funcmain(){

rand.Seed(time.Now().UnixNano())

vars[]map[string]int

s=make([]map[string]int,5,16)

forindex,value:=ranges{

fmt.Printf("slice[%d]=%v\n",index,value)

fmt.Println()

s[0]=make(map[string]int,16)

s[0]["stu01"]=1000

s[0]["stu02"]

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論