數(shù)組,切片,map

數(shù)組

初始化:

數(shù)組:var arr [len]type

實(shí)例 var arr [4]int32 默認(rèn)為零值。

數(shù)組的長(zhǎng)度也是數(shù)組類(lèi)型的一部分,所以[4]int32 與 [2]int32不是同一類(lèi)型的數(shù)組。

GO語(yǔ)言中的數(shù)組是一種值類(lèi)型,所以可以通過(guò) new() 來(lái)創(chuàng)建: var arr1 = new([5]int),arr1是指針類(lèi)型。

由于數(shù)組傳遞給函數(shù)的形參會(huì)導(dǎo)致數(shù)組的拷貝。

數(shù)組會(huì)拷貝


地址改變

由此可見(jiàn),如果形參是特別大的數(shù)組會(huì)造成內(nèi)存的消耗,有如下兩種方案可以避免這種情況:1. 指針傳遞。2. 切片傳遞。


切片

切片是對(duì)數(shù)組一個(gè)連續(xù)片段的引用。

切片 var slice []type

實(shí)例 var arr []int32

切片的初始化 arr := make([]int,3) or make([]int,3,10),其中3是切片的長(zhǎng)度,10是切片的容量。

切片的添加

arr = append(arr,2)或者 arr = append(arr,arr1...)

復(fù)制

copy(dest,src)

切片的操作

Map

map: var m map[keyType]valueType

實(shí)例:var m map[int]string

初始化 m := make(map[int]string) map是引用類(lèi)型所以用make分配內(nèi)存。

不要使用 new,永遠(yuǎn)用 make 來(lái)構(gòu)造 map。如果你錯(cuò)誤的使用 new() 分配了一個(gè)引用對(duì)象,你會(huì)獲得一個(gè)空引用的指針,相當(dāng)于聲明了一個(gè)未初始化的變量并且取了它的地址:之后操作會(huì)出錯(cuò)。

new map 使用出錯(cuò)

map操作

取值

????????????val, ok := m[key]

刪除

????????????delete(m,key)

map 操作
輸出結(jié)果

排序

map 默認(rèn)是無(wú)序的,如果你要有序的輸出,只能將key丟到一個(gè)切片中,然后對(duì)切片排序,再輸出val。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.安裝 https://studygolang.com/dl 2.使用vscode編輯器安裝go插件 3.go語(yǔ)...
    go含羞草閱讀 1,691評(píng)論 0 6
  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,681評(píng)論 0 9
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile麗語(yǔ)閱讀 4,096評(píng)論 0 6
  • 獅王鎮(zhèn)戶(hù)保平安, 屹立風(fēng)雨百余載。 遙想當(dāng)年祖先意, 添丁添福出能人。 承蒙祖先福浩蕩, 一代更比一代強(qiáng)。 開(kāi)基始...
    老兵_詩(shī)夢(mèng)人生閱讀 371評(píng)論 0 0
  • 扎西朗姆多多 轉(zhuǎn)載人:陳詩(shī)瑤 一如當(dāng)年 停在半天的云 和一張臉 驟然變紅 一如當(dāng)天 凝在江心的水 和一雙眼 漸漸變...
    半櫳閱讀 486評(píng)論 0 0

友情鏈接更多精彩內(nèi)容