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。

相关推荐
曹轲恒几秒前
Java并发包atomic原子操作类
java·开发语言
cyforkk4 分钟前
03、Java 基础硬核复习:流程控制语句的核心逻辑与面试考点
java·开发语言·面试
星火开发设计7 分钟前
const 指针与指针 const:分清常量指针与指针常量
开发语言·c++·学习·算法·指针·const·知识
0x538 分钟前
JAVA|智能无人机平台(一)
java·开发语言·无人机
雨季66611 分钟前
构建 OpenHarmony 文本高亮关键词标记器:用纯字符串操作实现智能标注
开发语言·javascript·flutter·ui·ecmascript·dart
REDcker12 分钟前
libwebsockets库原理详解
c++·后端·websocket·libwebsockets
2501_9481201515 分钟前
Java实现的SSL/TLS协议通信系统
java·开发语言·ssl
cici1587423 分钟前
基于MATLAB的TERCOM算法实现与优化
开发语言·matlab
天上飞的粉红小猪24 分钟前
c++的IO流
开发语言·c++
学嵌入式的小杨同学40 分钟前
【嵌入式 Linux 实战 1】Ubuntu 环境搭建 + 目录结构详解:嵌入式开发入门第一步
linux·c语言·开发语言·数据结构·vscode·vim·unix