Dzięki Swift 5, w zależności od potrzeb, możesz wybrać jeden z 6 poniższych kodów Playground , aby rozwiązać problem.
# 1. Korzystanie z subscript(_:)
indeksu dolnego
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. Korzystanie z prefix(_:)
metody
Złożoność: O (1) jeśli kolekcja jest zgodna RandomAccessCollection
; w przeciwnym razie O ( k ), gdzie k to liczba elementów do wybrania od początku kolekcji.
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 stwierdza prefix(_:)
:
Jeśli maksymalna długość przekracza liczbę elementów w kolekcji, wynik zawiera wszystkie elementy w kolekcji.
# 3. Korzystanie z prefix(upTo:)
metody
Złożoność: 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 stwierdza prefix(upTo:)
:
Użycie tej prefix(upTo:)
metody jest równoważne z użyciem częściowego półotwartego zakresu jako indeksu kolekcji. Notacja z indeksem dolnym jest preferowana prefix(upTo:)
.
# 4. Korzystanie z prefix(through:)
metody
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. Korzystanie z removeSubrange(_:)
metody
Złożoność: O ( n ), gdzie n jest długością kolekcji.
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. Korzystanie z dropLast(_:)
metody
Złożoność: O (1) jeśli kolekcja jest zgodna RandomAccessCollection
; w przeciwnym razie O ( k ), gdzie k to liczba elementów do usunięcia.
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
elementów plikuArray
.