溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現切片輸

發(fā)布時間:2021-10-14 15:01:11 來源:億速云 閱讀:121 作者:iii 欄目:編程語言

這篇文章主要講解了“如何實現切片輸”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現切片輸”吧!

首先,s[low : high : max]構造的切片內容和s[low : high]相同,只是在容量上有差別,這一點后面會介紹。另外這種格式只適用于數組和切片不能用于字符串。這一點請大家注意!

如何實現切片輸  

其次,s[low : high : max]s[low : high]容量不同。s[low : high]生成切片的容量為cap(s) - low, 而s[low : high : max]的容量為max - low

最后,s[low : high : max]中索引的范圍為0 <= low <= high <= max <= cap(s)。

現在我們回顧一下前一篇文章中的面試題。

arr := []int{1, 2, 3, 4, 5, 6, 7, 8}
s1 := arr[2:5:7] // s1的內容為[3,4,5]且容量為5
s1 = append(s1, 999) // s1內容為[3,4,5,999]
fmt.Println(s1, arr) // s1切片容量為5且和arr共用底層數組,故無需擴容,所以arr對應的值也發(fā)生變化
 

到這兒相信各位讀者以后再遇見類似的面試題就可以隨便拿捏了。下面繼續(xù)來看一下今天的正餐。

s1 := []byte{1}
s1 = append(s1, 2)

s2 := []int{1, 2}
s2 = append(s2, 3)
s2 = append(s2, 4)
s2 = append(s2, 5)

s3 := []int{1, 2}
s3 = append(s3, 3, 4, 5)
fmt.Println(cap(s1), cap(s2), cap(s3))

感謝各位的閱讀,以上就是“如何實現切片輸”的內容了,經過本文的學習后,相信大家對如何實現切片輸這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

go
AI