这篇文章主要讲解了“如何实现切片输”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现切片输”吧!
10年的舒城网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整舒城建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“舒城网站设计”,“舒城网站推广”以来,每个客户项目都认真落实执行。
首先,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))
感谢各位的阅读,以上就是“如何实现切片输”的内容了,经过本文的学习后,相信大家对如何实现切片输这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!