Go語言探索 - 10(原創(chuàng))

Go語言基礎(chǔ)系列博客用到的所有示例代碼

上一篇文章?主要學(xué)習(xí)了Go語言的結(jié)構(gòu)體以及結(jié)構(gòu)體指針殿雪,本篇文章主要學(xué)習(xí)Go語言的切片以及Map亲茅。

Go語言數(shù)組的長度不可改變麸拄,但是這在一些特定場景中就不太適用星著,比如我們現(xiàn)在有一款電商商品氛悬,想統(tǒng)計用戶的消費記錄(每個用戶的消費記錄可能不一樣饲鄙,有的一天幾十單有的一個季度就幾單)Go語言團(tuán)隊基于此中提供了相較于一種靈活,功能強(qiáng)悍的內(nèi)置類型切片("也稱動態(tài)數(shù)組"圆雁,這個可以理解為Java的List)。

與數(shù)組相比切片的長度是不固定的帆谍,可以追加元素伪朽,在追加時可能使切片的容量增大。

如何定義切片汛蝙?

var 切片變量名 [ ] 數(shù)據(jù)類型 = make([ ] 數(shù)據(jù)類型, len)

也可以簡寫為 切片變量名 := make([ ] 數(shù)據(jù)類型, len)

或者直接:切片變量名? := [ ] 數(shù)據(jù)類型 { 1,2,3 }

初始化切片

我們可以通過切片的索引獲取新的切片:


其中 紅色矩形內(nèi)的代碼 是通過我們定義好的切片烈涮,然后使用 s[0:3]? 獲取新的切片。這里的0代表的是startIndex 也就是切片的開始索引窖剑;3代表的是endIndex坚洽,也就是結(jié)束索引

len() 和 cap() 函數(shù)

切片是可索引的,可以通過 len() 方法獲取長度西土。

切片提供了計算容量的方法 cap() 可以測量切片最長可以達(dá)到多少讶舰。

append() 和 copy() 函數(shù)

既然切片的長度是不固定的,那么它肯定有添加元素的方法需了。Go語言中跳昼,切片添加元素的方法是使用 append( )。

另外肋乍,切片也是允許拷貝的鹅颊,拷貝切片使用的方法是copy( )。

下面的代碼墓造,首先初始化一個空切片堪伍,然后對切片的元素進(jìn)行添加 然后copy到新的切片,最后打印切片屬性值觅闽。

如何遍歷切片帝雇?

遍歷切片

簡單介紹完了切片,下面學(xué)習(xí)GO語言的Map(類似于Java中的Map谱煤,一個key對應(yīng)一個value)

Map 是一種無序的鍵值對集合摊求。Map最重要的一點是通過 key 來快速檢索數(shù)據(jù),key 類似于索引,指向數(shù)據(jù)的值室叉。但是睹栖,Map 是無序的,我們無法決定它的返回順序茧痕,這是因為 Map 是使用 hash 表來實現(xiàn)的野来。

如何定義 Map?以下兩種方式都可以

可以使用內(nèi)建函數(shù) make :var map_變量名 map[key_數(shù)據(jù)類型]value數(shù)據(jù)類型

也可以使用 map 關(guān)鍵字來定義 :? 變量名 := make(map[key_數(shù)據(jù)類型]value數(shù)據(jù)類型)

以下代碼是Map初始化的兩種寫法以及向Map添加元素踪旷,根據(jù)key刪除元素

Map

如何遍歷Map曼氛?遍歷Map可以使用range關(guān)鍵字 進(jìn)行遍歷 代碼如下:

遍歷Map

本篇文章主要學(xué)習(xí)的是Go語言的切片和Map,切片本質(zhì)就是一個長度不確定的動態(tài)數(shù)組令野,類似于Java的List舀患;而Map也類似于Java中的Map,屬于key - value 對應(yīng)的結(jié)構(gòu)模式。計算機(jī)語言的互通性體現(xiàn)在方方面面气破,一些思想都是互通與傳承的聊浅。

如果這篇文章對您有開發(fā)or學(xué)習(xí)上的些許幫助,希望各位看官留下寶貴的star现使,謝謝低匙。

Ps:著作權(quán)歸作者所有,轉(zhuǎn)載請注明作者, 商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處(開頭或結(jié)尾請?zhí)砑愚D(zhuǎn)載出處碳锈,添加原文url地址),文章請勿濫用,也希望大家尊重筆者的勞動成果

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顽冶,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子售碳,更是在濱河造成了極大的恐慌强重,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贸人,死亡現(xiàn)場離奇詭異竿屹,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)灸姊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進(jìn)店門拱燃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人力惯,你說我怎么就攤上這事碗誉。” “怎么了父晶?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵哮缺,是天一觀的道長。 經(jīng)常有香客問我甲喝,道長尝苇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮糠溜,結(jié)果婚禮上淳玩,老公的妹妹穿的比我還像新娘。我一直安慰自己非竿,他們只是感情好蜕着,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著红柱,像睡著了一般承匣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锤悄,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天韧骗,我揣著相機(jī)與錄音,去河邊找鬼零聚。 笑死宽闲,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的握牧。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼娩梨,長吁一口氣:“原來是場噩夢啊……” “哼沿腰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起狈定,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤颂龙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纽什,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體措嵌,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年芦缰,在試婚紗的時候發(fā)現(xiàn)自己被綠了企巢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡让蕾,死狀恐怖浪规,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情探孝,我是刑警寧澤笋婿,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站顿颅,受9級特大地震影響缸濒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一庇配、第九天 我趴在偏房一處隱蔽的房頂上張望斩跌。 院中可真熱鬧,春花似錦讨永、人聲如沸滔驶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揭糕。三九已至,卻和暖如春锻霎,著一層夾襖步出監(jiān)牢的瞬間著角,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工旋恼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留吏口,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓冰更,卻偏偏與公主長得像产徊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜀细,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348