go语言的切片理解

Go 复制代码
var numbers4 = [...]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
	myslice := numbers4[4:6]
	//这打印出来长度为2
	fmt.Printf("myslice为 %d, 其长度为: %d\n", myslice, len(myslice))
	myslice = myslice[:cap(myslice)]
	//为什么 myslice 的长度为2,却能访问到第四个元素
	fmt.Printf("myslice的第四个元素为: %d", myslice[3])

为什么打印cap(mysslice) 等于6?

在 Go 语言中,切片的容量是从切片的第一个元素开始到底层数组末尾元素的个数。当你从数组 numbers4 中创建切片 myslice 时,虽然你只选择了索引4到索引6(不包括索引6)的元素,但是 myslice 的底层数组仍然是 numbers4,所以 myslice 的容量是从 numbers4 数组的第5个元素开始到 numbers4 数组末尾的元素个数,因此 cap(myslice) 的结果是6。

相关推荐
aramae29 分钟前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
徐小夕1 小时前
存量.doc 文档怎么办?JitWord 开源转换库打通旧文档到在线协同全链路
后端·架构·github
ee又momo1 小时前
一次 JWT Token 过期续期的踩坑记录
后端
五彩小白1 小时前
GO语言装饰器语法
golang
二月龙1 小时前
App 瘦身实战:图片、so 库、资源压缩,安装包体积减小 40%
后端
大勇前进2 小时前
Kotlin 协程实战避坑:90% 的人都会踩的生命周期泄漏问题
后端
苏三说技术2 小时前
Spring AI、LangChain4j、AgentScope、Embabel,哪个AI框架更好?
后端
烽学长2 小时前
(附源码)基于Springboot+vue的图书阅读分享系统的设计与实现
java·spring boot·后端
isfox2 小时前
Python 单例模式:一个类只能有一个实例,到底怎么实现?
后端
青山木3 小时前
RocketMQ 入门到原理(三):消息存储原理
java·后端·中间件·架构·rocketmq