golang通过切片创建新的切片

通过切片创建新的切片切片之所以被称为切片,是因为创建一个新的切片,也就是把底层数组切出一部分。通过切片创建新切片的语法如下:
slice[i:j]slice[i:j:k]其中 i 表示从 slice 的第几个元素开始切,j 控制切片的长度(j-i),k 控制切片的容量(k-i),如果没有给定 k,则表示切到底层数组的最尾部。下面是几种常见的简写形式:
slice[i:] // 从 i 切到最尾部slice[:j] // 从最开头切到 j(不包含 j)slice[:] // 从头切到尾,等价于复制整个 slice让我们通过下面的例子来理解通过切片创建新的切片的本质:
// 创建一个整型切片// 其长度和容量都是 5 个元素num := []int{1, 2, 3, 4, 5}// 创建一个新切片// 其长度为 2 个元素,容量为 4 个元素mynum := slice[1:3]执行上面的代码后,我们有了两个切片,它们共享同一段底层数组,但通过不同的切片会看到底层数组的不同部分:
注意:截取新切片时的原则是 左含右不含。所以 mynum 是从 num 的 index=1 处开始截取,截取到 index=3 的前一个元素,也就是不包index=3 这个元素。
所以,新的 mynum 是由 num 中的第2个元素、第3个元素组成的新的切片构,长度为 2,容量为 4。切片 num 能够看到底层数组全部 5 个元素的容量,而 mynum 能看到的底层数组的容量只有 4 个元素。num 无法访问到底层数组的第一个元素。所以,对 mynum 来说,那个元素就是不存在的。

关于数据管理的介绍和应用分析
能耗管理系统节能管控平台方案源中瑞科技
关于Volkswagen公司3缸柴油机性能分析
在家飞空气净化器你见过吗?
氢燃料电池的工作原理(详细)
golang通过切片创建新的切片
Avegant虚拟现实头戴式显示设备如何改变娱乐体验
天翼云电脑,5G云笔电商用!
直流电机正反转限位电路介绍
李楠谈苹果自研Mac芯片M1:移动架构和移动制程反攻桌面的一战
魅族18系列拥有IP68防尘防水级别
IO控制器使用所组态的拓扑关系
现场总线的优点
国科微与湖南移动签署战略合作协议
USB3.1和Type-C怎么区分?一文看它俩之间的区别
冀北电力正在构建变电站+储能站+数据中心三站合一的泛在电力物联网
Silicon Labs阅读照明白皮书答题活动开奖!
集成电路设计企业复旦微电发布2022年第一季度报告
小米许诺的“净利润率不超5%”,是大多数实业人都不敢奢望的辉煌
USB Type-C接口是如何成功打开市场的