gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

go語言中append()怎么用

在go語言中,append()函數用于為切片動態添加元素,可以將元素添加到切片末尾并返回結果;調用append函數必須用原來的切片變量接收返回值,追加一個元素可使用“slice = append(slice,elem1,elem2)”語句,追加一個切片可使用“slice = append(slice,anotherSlice…)”語句。

go語言中append()怎么用

本教程操作環境:windows7系統、GO 1.18版本、Dell G3電腦。

Go語言的內建函數 append() 可以為切片動態添加元素。

要點:

  • append()用來將元素添加到切片末尾并返回結果。
  • 調用append函數必須用原來的切片變量接收返回值
  • append追加元素,如果slice還有容量的話,就會將新的元素放在原來slice后面的剩余空間里,當底層數組裝不下的時候,Go就會創建新的底層數組來保存這個切片,slice地址也隨之改變。
  • 分配了新的地址后,再把原來slice中的元素逐個拷貝到新的slice中,并返回。

(1) append()追加一個元素

slice = append(slice,elem1,elem2)
登錄后復制

append括號內,第一個參數slice后可以加多個參數。

package  main import "fmt" //切片進階操作   func main(){ 	//append()為切片追加元素 	s1 := []string {"火雞面","辛拉面","湯達人"} 	fmt.Printf("s1=%v len(s1)=%d cap(s1)=%dn",s1,len(s1),cap(s1)) 	 	//調用append函數必須用原來的切片變量接收返回值 	s1 = append(s1,"小當家") //append追加元素,原來的底層數組裝不下的時候,Go就會創建新的底層數組來保存這個切片   fmt.Printf("s1=%v len(s1)=%d cap(s1)=%dn",s1,len(s1),cap(s1))//cap增加兩倍 }
登錄后復制

輸出結果:

s1=[火雞面 辛拉面 湯達人] len(s1)=3 cap(s1)=3 s1=[火雞面 辛拉面 湯達人 小當家] len(s1)=4 cap(s1)=6
登錄后復制

(2)append()追加一個切片

slice = append(slice,anotherSlice...)
登錄后復制

append括號內只能有兩個參數,一個切片,另一個追加的切片。

package  main import "fmt" //切片進階操作   func main(){ 	//append()為切片追加元素 	s1 := []string {"火雞面","辛拉面","湯達人"} 	fmt.Printf("s1=%v len(s1)=%d cap(s1)=%dn",s1,len(s1),cap(s1)) 	 	//調用append函數必須用原來的切片變量接收返回值 	s1 = append(s1,"小當家") //append動態追加元素,原來的底層數組容納不下足夠多的元素時,切片就會開始擴容,Go底層數組就會把底層數組換一個 	fmt.Printf("s1=%v len(s1)=%d cap(s1)=%dn",s1,len(s1),cap(s1))  	//調用append添加一個切片 	s2 := []string{"脆司令","圣斗士"} 	s1 = append(s1,s2...)//...表示拆開切片,再添加 	fmt.Printf("s1=%v len(s1)=%d cap(s1)=%d",s1,len(s1),cap(s1)) }
登錄后復制

輸出結果:

s1=[火雞面 辛拉面 湯達人] len(s1)=3 cap(s1)=3 s1=[火雞面 辛拉面 湯達人 小當家] len(s1)=4 cap(s1)=6 s1=[火雞面 辛拉面 湯達人 小當家 脆司令 圣斗士] len(s1)=6 cap(s1)=6
登錄后復制

(3)使用make創建切片時,用append()添加元素常犯錯誤

package main  import "fmt"  func main(){ 	var a = make([]int, 5, 10) 	fmt.Println(a) 	fmt.Printf("%pn",a) 	for i := 0; i <10; i++ { 		a = append(a,i)     //%p 打印切片地址 		fmt.Printf("%v,%p,cap(a):%dn",a,a,cap(a)) 	}  }
登錄后復制

輸出結果:

[0 0 0 0 0] 0xc0000180a0 [0 0 0 0 0 0],0xc0000180a0,cap(a):10 [0 0 0 0 0 0 1],0xc0000180a0,cap(a):10 [0 0 0 0 0 0 1 2],0xc0000180a0,cap(a):10 [0 0 0 0 0 0 1 2 3],0xc0000180a0,cap(a):10 [0 0 0 0 0 0 1 2 3 4],0xc0000180a0,cap(a):10 [0 0 0 0 0 0 1 2 3 4 5],0xc00007c000,cap(a):20 [0 0 0 0 0 0 1 2 3 4 5 6],0xc00007c000,cap(a):20 [0 0 0 0 0 0 1 2 3 4 5 6 7],0xc00007c000,cap(a):20 [0 0 0 0 0 0 1 2 3 4 5 6 7 8],0xc00007c000,cap(a):20 [0 0 0 0 0 0 1 2 3 4 5 6 7 8 9],0xc00007c000,cap(a):20
登錄后復制

注意:

(1)make創建切片,有默認長度,就有默認值。

append()再添加元素,是在默認值后添加,而不是覆蓋默認值。

(2)當元素超過make創建時設的容量10時,原底層數組裝不下,就會換一段新的連續的地址來存放元素。

(4)利用append刪除元素

Go中沒有提供專門刪除元素的函數,而是通過切片本身的特點來刪除元素。

即以被刪除元素為分界點,再利用append將前后兩個部分的內存重新連接起來。

例如

如果要在切片s中刪除一個元素,被刪除的元素索引為index

則刪除過程為

s = append ( s[ :index ], s[ index+1: ] )
登錄后復制

將前后兩個部分重新連接起來,實質上就是將刪除點的元素前移,將內存重新連接起來。

package main  import "fmt"  func main(){ 	a1 := [...]int{1,2,5,3,78,9,4,9,23,32} 	s1 := a1[:] //得到切片 	fmt.Println(s1)  	//刪除索引為4的78 	s1 = append(s1[:4],s1[5:]...) 	fmt.Println(s1) 	fmt.Println(a1) }
登錄后復制

Go中利用append刪除元素的原理為:

(畫的有毫毫丑…..)

go語言中append()怎么用

輸出結果:

[1 2 5 3 78 9 4 9 23 32] [1 2 5 3 9 4 9 23 32] [1 2 5 3 9 4 9 23 32 32]
登錄后復制

理解后可以試著猜猜下面的程序輸出是什么:

package main  import "fmt"  func main(){ 	a1 := [...]int{1,2,5,3,78,9,4,9,23,32} 	s1 := a1[:] //得到切片 	fmt.Println(s1)  	//刪掉索引為2和3的5,3 	s1 = append(s1[:2],s1[4:]...) 	fmt.Println(s1) 	fmt.Println(a1) }
登錄后復制

go語言中append()怎么用

正確結果:

[1 2 5 3 78 9 4 9 23 32] [1 2 78 9 4 9 23 32] [1 2 78 9 4 9 23 32 23 32]
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
免费cad大片在线观看| 精品国产一区二区三区在线| 色婷婷.com| 中文字幕永久有效| 懂色av粉嫩av蜜臀av| 天堂av.com| 老子影院午夜伦不卡大全| 男人添女人下面高潮视频| 午夜精品久久久内射近拍高清| 热久久最新网址| 91精品国产毛片武则天| 亚洲高清免费在线观看| 91猫先生在线| 天堂av.com| 久久av综合网| 国产中文字幕视频在线观看| www.夜夜爱| 欧洲美女亚洲激情| 国产日产欧美一区二区| 日本网站免费在线观看| 国产精品视频黄色| 一级黄色高清视频| 国产精品久久久久9999爆乳| r级无码视频在线观看| 男人的天堂99| 免费涩涩18网站入口| 日本中文字幕在线不卡| 九一国产精品视频| 中文字幕日韩精品无码内射| 18禁网站免费无遮挡无码中文| 天堂8在线天堂资源bt| 国产a级片网站| 日本中文字幕在线不卡| 国产日韩一区二区在线观看| 婷婷六月天在线| 国产成人精品视频免费看| 国产一区二区三区在线免费| 激情五月婷婷久久| 国产综合av在线| 天天色综合天天色| 国产嫩草在线观看| 国产三区在线视频| 韩国无码av片在线观看网站| 午夜免费一级片| 8x8x成人免费视频| 日本成人在线免费视频| 亚洲一区在线不卡| 亚洲一区二区三区四区精品| 免费看国产黄色片| 香蕉视频xxxx| 亚洲在线观看网站| 亚洲综合激情五月| 亚洲人成无码网站久久99热国产| 俄罗斯av网站| 国产精品-区区久久久狼| 日韩中文字幕组| 香蕉视频999| 亚洲不卡视频在线| 国产成人无码精品久久久性色| 成人羞羞国产免费网站| 国产大片一区二区三区| 狠狠干 狠狠操| 午夜国产一区二区三区| 亚洲人辣妹窥探嘘嘘| av五月天在线| 久久久久久久香蕉| 国产精品丝袜久久久久久消防器材| 久久99中文字幕| 激情五月婷婷久久| av在线播放天堂| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 婷婷六月天在线| 亚洲人成无码网站久久99热国产 | 国内自拍在线观看| 欧洲熟妇精品视频| 日韩精品 欧美| 久久久久久人妻一区二区三区| 99日在线视频| 91亚洲免费视频| 男人用嘴添女人下身免费视频| 91网址在线播放| 久久久久免费精品| 毛片av免费在线观看| 欧美国产日韩激情| 好吊色这里只有精品| 免费在线看黄色片| 丰满的少妇愉情hd高清果冻传媒| 国产免费裸体视频| 精品国产免费av| 亚洲少妇久久久| 激情文学亚洲色图| 国内国产精品天干天干| 国产无遮挡猛进猛出免费软件| 欧美黄色免费影院| 99在线精品免费视频| 欧美一级片中文字幕| 天堂视频免费看| 中文字幕日韩久久| 亚洲人成无码网站久久99热国产| 日韩有码免费视频| 无码人妻精品一区二区三区99v| 精品视频免费在线播放| 亚洲免费黄色录像| 每日在线更新av| 亚洲视频在线不卡| 少妇黄色一级片| 国产欧美在线一区| 欧美黑人在线观看| 日本特黄a级片| 缅甸午夜性猛交xxxx| 九九热在线免费| 亚欧在线免费观看| av无码精品一区二区三区| 中国一级黄色录像| 欧美成年人视频在线观看| 国产精品一区二区免费在线观看| 日韩精品综合在线| 日本福利视频在线| 日本精品免费在线观看| 秋霞无码一区二区| 国产肥臀一区二区福利视频| 国产亚洲欧美在线视频| 免费无码av片在线观看| 国内外成人激情视频| 日韩极品视频在线观看| 日本精品久久久久久久久久| 五月天av在线播放| 欧美污视频网站| 日本高清一区二区视频| 激情五月六月婷婷| 国产欧美日韩网站| 亚洲中文字幕无码av永久| 波多野结衣之无限发射| 欧美伦理片在线看| 真人做人试看60分钟免费| 久久99久久久久久| 欧美大尺度做爰床戏| 天天做天天干天天操| 国内少妇毛片视频| 91精品999| 国产玉足脚交久久欧美| 久久精品国产精品亚洲色婷婷| 国产精品亚洲a| 成人在线国产视频| 9999在线观看| 欧美伦理视频在线观看| 黄色手机在线视频| 欧美 另类 交| 4444亚洲人成无码网在线观看| 免费国产成人av| 性欧美在线视频| 日韩亚洲在线视频| 日韩中字在线观看| 色噜噜狠狠一区二区| 91九色丨porny丨国产jk| 国产九九九九九| 缅甸午夜性猛交xxxx| 久久久久久免费看| 久久观看最新视频| 中文字幕网av| 五月婷婷六月丁香激情| 一级一片免费播放| 国产精品h视频| 三日本三级少妇三级99| 亚洲中文字幕久久精品无码喷水| 99热一区二区三区| 日本三级黄色网址| 9久久9毛片又大又硬又粗| 男女日批视频在线观看| 青青青青草视频| 五月婷婷六月合| 青青青免费在线| 日本爱爱免费视频| 国产精品999.| 亚洲精品www.| 黄色片免费网址| 欧美精品无码一区二区三区| 91极品视频在线观看| 日本免费在线视频观看| koreanbj精品视频一区| 亚洲精品高清无码视频| 艳母动漫在线免费观看| 亚洲这里只有精品| 欧美另类videosbestsex日本| 成人免费观看cn| 中文字幕免费高| 亚洲欧美日韩综合网| 中文字幕天天干| 黄色污污在线观看| 免费观看成人在线视频| 麻豆视频传媒入口| 久久久久久久久久毛片| 日本特黄在线观看| 日本中文字幕精品—区二区| 免费看欧美黑人毛片| 亚洲精品综合在线观看| 欧美少妇性生活视频| 中文字幕资源在线观看| 2022亚洲天堂| 国产 日韩 欧美在线|