1、通过 Drop 得到 ArraySlice
var array = [5, 2, 10, 1, 0, 100, 46, 99]
print(array.dropFirst()) //返回移除前面 1 个元素后的数组切片
print(array.dropFirst(3)) //返回移除前面 3 个元素后的数组切片
print(array.dropLast())
print(array.dropLast(3)) //返回移除后面 3 个元素后的数组切片
print(array.drop(while: { $0 < 10})) //移除前面符合给定条件的元素
print(array) //移除操作后,原数组不变
2、通过 prefix 得到 ArraySlice
var array = [5, 2, 10, 1, 0, 100, 46, 99]
print(array.prefix(3)) //获取前面 3 位元素的数组
print(array.prefix(upTo: 5)) //得不到第五位
print(array.prefix(through: 5)) //可以取到第五位
print(array.prefix(while: { $0 < 10}))
3、通过 suffix 得到 ArraySlice
var array = [5, 2, 10, 1, 0, 100, 46, 99]
print(array.suffix(3))
print(array.suffix(from: 3)) //可以取到第三位
4、通过 Range 得到 ArraySlice
var array = [5, 2, 10, 1, 0, 100, 46, 99]
array[3...5]
array[3..<5]
array[...6]
array[..<6]
array[2...]
array[...]
5、ArraySlice 转为 Array
var array = [5, 2, 10, 1, 0, 100, 46, 99]
let slice = array[3...5]
//array = slice //这里报错,不能直接将数组切片赋值给数组
//需要使用Array(slice)才可以
array = Array(slice)
print(array)
print(slice)
6、ArraySlice 和原 Array 相互独立
var array = [10, 46, 99]
var slice = array.dropLast()
//print(slice) //输出: [10, 46]
//print(array) //输出: [10, 46, 99]
array.append(33)
slice.append(56)
//它们添加删除元素不会影响对方
print(slice) //输出: [10, 46, 56]
print(array) //输出: [10, 46, 99, 33]