访问和操作数组-ArraySlice
2021-06-27 本文已影响0人
一个栗
ArraySlice 是数组或者其他 ArraySlice 的一段连续切片,和原数组共享内存。
- 当要改变 ArraySlice 的时候,ArraySlice 会 copy 出来,形成单独内存。
- ArraySlice 拥有和 Array 基本完全类似的方法。【类比子字符串和原字符串】

通过 Drop 得到 ArraySlice
- dropFirst(:) “移除”原数组前面指定个数的元素得到一个 ArraySlice
- dropLast(:) “移除”原数组后面指定个数的元素得到一个 ArraySlice
- drop(:) “移除”原数组符合指定条件的元素得到一个 ArraySlice

通过 prefix 得到 ArraySlice
- prefix() 获取数组前面指定个数的元素组成的 ArraySlice
- prefix(upTo:) 获取数组到指定位置(不包含指定位置)前面的元素组成的 ArraySlice
- prefix(through:) 获取数组到指定位置(包含指定位置)前面的元素组成的 ArraySlice
- prefix(while:) 获取数组前面符合条件的元素(到第一个不符合条件的元素截止)组成的 ArraySlice

通过 suffix 得到 ArraySlice
- suffix() 获取数组后面指定个数的元素组成的 ArraySlice
- suffix(from:) 获取数组从指定位置到结尾(包含指定位置)的元素组成的 ArraySlice

通过 Range 得到 ArraySlice
- 可以通过对数组下标指定 Range 获取 ArraySlice,可以使用闭区间、半开半闭区间、单侧区间、甚至可以只使用...来获取整个数组组成的 ArraySlice。

ArraySlice 转为 Array
- ArraySlice 无法直接赋值给一个 Array 的常量或者变量,需要使用 Array(slice)。

ArraySlice 和原 Array 相互独立
- ArraySlice 和原 Array 相互独立,添加和删除元素不会影响对方。
