Go語言切片

// //Go語言切片

// /*

// go語言切片是對(duì)數(shù)組的抽象

// Go 數(shù)組的長度不可改變漓柑,在特定場(chǎng)景中這樣的集合就不太適用能犯,Go中提供了一種靈活,功能強(qiáng)悍的內(nèi)置類型切片("動(dòng)態(tài)數(shù)組"),

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

// */

//聲明一個(gè)未指定大小的數(shù)組來定義切片

var identifier []type

//切片不需要說明長度 或者使用make()函數(shù)來創(chuàng)建切片

var slice1 []type = make([]type,len)

//也可以簡寫為

slice1 := make([]type,len)

//也可以指定容量苛预,其中capacity為可選參數(shù)

make([]T,length,capacity)

//這里的len是數(shù)組的長度并且也是切片的初始長度

//切片初始化 (類似于OC中的可變數(shù)組)

//直接初始化切片句狼,[]表示是切片類型,{1碟渺,2鲜锚,3}初始化值依次為1,2苫拍,3? 其cap = len = 3

s := []int {1,2,3}

//初始化切片s,是數(shù)組arr的引用

s := arr[:]

//將arr從下標(biāo)startIndex到endIndex-1 下的元素創(chuàng)建為一個(gè)新的切片

s := arr[strarIndex:endIndex]

//缺省endIndex時(shí)將表示到arr的最后一個(gè)元素

s := arr[startIndex:]

//缺省startIndex時(shí)將表示從arr的第一個(gè)元素開始

s :=arr[:endIndex]

//通過切片s初始化切片s1

s1 := s[startIndex:endIndex]

//通過內(nèi)置函數(shù)make()初始化切片s,[]int 標(biāo)識(shí)為其元素類型為int的切片

s :=make([]int,len,cap)

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

// //切片是可索引的芜繁,并且可以由len()方法獲取長度

// //切片提供了計(jì)算容量的方法cap()可以測(cè)量切片最長可以達(dá)到多少

//

package main

import "fmt"

func main() {

// var numbers = make([]int,6,10)

// printSlice(numbers)

// //空切片

// nilSlince()

// //切片截取

// cutSlince()

//追加切片

appendSclince()

}

func printSlice(x []int) {

fmt.Printf("len:%d cap:%d slice:%v\n",len(x),cap(x),x)

// len= 6 , cap = 10 , x = [0,0,0,0,0,0]

}

//空切片

//一個(gè)切片在未初始化之前默認(rèn)為Nil 長度為0 實(shí)例如下

func nilSlince() {

var numbers []int

printNilSlice(numbers)

if (numbers == nil) {

fmt.Printf("切片是空\n")

}

}

func printNilSlice(x []int) {

fmt.Printf("len:%d cap:%d slice:%v\n",len(x),cap(x),x)

}

//切片截取

//可以通過設(shè)置下限及上限來設(shè)置截取切片[lower-bound:upper-bound]

func cutSlince() {

numberscut := []int{0,1,2,3,4,5,6,7,8}

printSlice(numberscut)

//打印子切片從索引1(包含)到索引4(不包含)

fmt.Println("numberscut[1:4] == ",numberscut[1:4])

//默認(rèn)下限為0

fmt.Println("numberscut[:3] == ",numberscut[:3])

//默認(rèn)上限為len(s)

fmt.Println("numberscut[:5] == ",numberscut[5:])

numbers1 :=make([]int,0,5)

printSlice(numbers1)

//打印子切片從索引0(包含)到索引2(不包含)

numbers2 :=numberscut[:2]

printSlice(numbers2)

}

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

/*

如果想增加切片的容量,我們必須創(chuàng)建一個(gè)新的更大的切片并把原分片的內(nèi)容都拷貝過來绒极。

下面的代碼描述了從拷貝切片的 copy 方法和向切片追加新元素的 append 方法骏令。

*/

func appendSclince() {

var numbers []int

printSlice(numbers)

//允許追加空切片

numbers = append(numbers,30)

printSlice(numbers)

//向切片添加一個(gè)元素

numbers = append(numbers,6)

printSlice(numbers)

//同時(shí)添加多個(gè)元素

numbers = append(numbers,2,3,4)

printSlice(numbers)

//創(chuàng)建切片number1 是之前的2倍

numbers1 := make([]int,len(numbers),(cap(numbers))*2)

//拷貝numbers的內(nèi)容到number1

copy(numbers1,numbers)

printSlice(numbers1)

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市垄提,隨后出現(xiàn)的幾起案子榔袋,更是在濱河造成了極大的恐慌周拐,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凰兑,死亡現(xiàn)場(chǎng)離奇詭異妥粟,居然都是意外死亡吏够,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門锅知,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人售睹,你說我怎么就攤上這事桩警。” “怎么了昌妹?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長飞崖。 經(jīng)常有香客問我,道長蚜厉,這世上最難降的妖魔是什么长已? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮昼牛,結(jié)果婚禮上术瓮,老公的妹妹穿的比我還像新娘贰健。我一直安慰自己,他們只是感情好伶椿,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布脊另。 她就那樣靜靜地躺著导狡,像睡著了一般偎痛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天氓癌,我揣著相機(jī)與錄音贫橙,去河邊找鬼贪婉。 笑死卢肃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的践剂。 我是一名探鬼主播娜膘,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼竣贪,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼军洼!你這毒婦竟也來了演怎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤爷耀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后歹叮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡德谅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年萨螺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椭盏。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吻商,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出手报,到底是詐尸還是另有隱情改化,我是刑警寧澤枉昏,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站兄裂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晰奖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一啃匿、第九天 我趴在偏房一處隱蔽的房頂上張望蛆楞。 院中可真熱鬧,春花似錦豹爹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钟哥。三九已至瞎访,卻和暖如春腻贰,著一層夾襖步出監(jiān)牢的瞬間扒秸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國打工写烤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拾徙,地道東北人洲炊。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像询微,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撑毛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容