当前位置:   article > 正文

数据:切片定义_数据切片

数据切片

4-3 切片定义

很多语言都有切片,切片严格来说是一种概念,并不是一种明确的数据结构。树、哈希表是一种明确的数据结构。

切片不管怎么实现,实际上是引用数组一个片段,要么是整个数组,要么是局部数组。引用局部的话必须有长度、容量,切片需要模拟动态数组特征必然存在扩容问题,扩容涉及到底层数组重新分配,重新分配是数组的行为,切片只不过调用数组,重新创建数组把内容拷过去,这只是一种实现方式并不是切片本身有这种能力,是对概念的一种模拟化。

切片是基于数组延伸的一种概念,在不同的语言有不同实现方式。不管它怎么实现,是否支持扩容,切片基本上可以确定它代表一种开闭区间,起始开始到截止地址的终止。

Go语言的标准库没有使用数组而在使用切片,为什么不把数组这个概念取消掉。因为数组的传值类型很麻烦,用切片来模拟这种行为。用切片来形成一种所谓安全型C语言数组,因为c语言数组只能传起止地址不能传长度。切片内部结构有长度一说,所以说它是有边界值检查的数组。

很显然数组和切片代表两种不同的概念,不管底层怎么实现,切片存在追加行为,数组没有。不管切片底层基于什么实现和想表达的一种抽象概念是两回事,这显然代表两种编程的含义。

用切片所代表的行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/767763
推荐阅读
相关标签
  

闽ICP备14008679号