С Swift 5, в соответствии с вашими потребностями, вы можете выбрать один из 6 следующих кодов игровой площадки , чтобы решить вашу проблему.
# 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"]
nэлементыArray.