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。

相关推荐
小高不明几秒前
前缀和一维/二维-复习篇
开发语言·算法
龘龍龙4 分钟前
Python基础(八)
开发语言·python
期待のcode25 分钟前
@RequestBody的伪表单提交场景
java·前端·vue.js·后端
王中阳Go40 分钟前
手把手教你用 Go + Eino 搭建一个企业级 RAG 知识库(含代码与踩坑)
人工智能·后端·go
幺零九零零1 小时前
Golang-Swagger
开发语言·后端·golang
moyueheng1 小时前
AG-UI 事件类型全解析:构建 AI 代理与 UI 的实时通信桥梁
后端
兔丝1 小时前
ThinkPHP8 常见并发场景解决方案文档
redis·后端
用户3521802454751 小时前
🥯2025 年终极避坑指南:Spring Boot 2.7 + 3.2 混合集群的 Redis + OAuth2 序列化血泪史
java·后端·spring cloud
陌路物是人非1 小时前
记一个 @Resource BUG
java·开发语言·bug
怎么就重名了1 小时前
记录Qt的UDP通信丢包问题
开发语言·qt·udp