温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何实现切片输

发布时间:2021-10-14 15:01:11 来源:亿速云 阅读:108 作者: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对应的值也发生变化
 

到这儿相信各位读者以后再遇见类似的面试题就可以随便拿捏了。下面继续来看一下今天的正餐。

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问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

go
AI