您好,登錄后才能下訂單哦!
這篇文章主要講解了“如何實現切片輸”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何實現切片輸”吧!
首先,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))
感謝各位的閱讀,以上就是“如何實現切片輸”的內容了,經過本文的學習后,相信大家對如何實現切片輸這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。