使用 Swift 5,根据您的需要,您可以选择 以下 6 个 Playground 代码之一来解决您的问题。
#1。使用subscript(_:)下标
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array[..<5]
//let arraySlice = array[0..<5] // also works
//let arraySlice = array[0...4] // also works
//let arraySlice = array[...4] // also works
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
#2。使用prefix(_:)方法
复杂度:O(1) 如果集合符合RandomAccessCollection;否则,O(k),其中 k 是要从集合开头选择的元素数。
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array.prefix(5)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
Apple 声明prefix(_:):
如果最大长度超过集合中的元素个数,则结果包含集合中的所有元素。
#3。使用prefix(upTo:)方法
复杂度:O(1)
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array.prefix(upTo: 5)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
Apple 声明prefix(upTo:):
使用prefix(upTo:) 方法等效于使用部分半开范围作为集合的下标。下标表示法优于prefix(upTo:)。
#4。使用prefix(through:)方法
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let arraySlice = array.prefix(through: 4)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]
#5。使用removeSubrange(_:)方法
复杂度:O(n),其中n是集合的长度。
var array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
array.removeSubrange(5...)
print(array) // prints: ["A", "B", "C", "D", "E"]
#6。使用dropLast(_:)方法
复杂度:O(1) 如果集合符合RandomAccessCollection;否则,O(k),其中 k 是要删除的元素数。
let array = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L"]
let distance = array.distance(from: 5, to: array.endIndex)
let arraySlice = array.dropLast(distance)
let newArray = Array(arraySlice)
print(newArray) // prints: ["A", "B", "C", "D", "E"]