Mit Swift 5 können Sie je nach Bedarf einen der 6 folgenden Spielplatzcodes auswählen , um Ihr Problem zu lösen.
# 1. Mit subscript(_:)
Index
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. Mit prefix(_:)
Methode
Komplexität: O (1) wenn die Sammlung übereinstimmt RandomAccessCollection
; sonst O ( k ), wobei k die Anzahl der Elemente ist, die vom Beginn der Sammlung an ausgewählt werden sollen.
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 sagt für prefix(_:)
:
Wenn die maximale Länge die Anzahl der Elemente in der Sammlung überschreitet, enthält das Ergebnis alle Elemente in der Sammlung.
#3. Mit prefix(upTo:)
Methode
Komplexität: 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 sagt für prefix(upTo:)
:
Die Verwendung der prefix(upTo:)
Methode entspricht der Verwendung eines halboffenen Bereichs als Index der Sammlung. Die tiefgestellte Notation wird gegenüber der Notation bevorzugt prefix(upTo:)
.
# 4. Mit prefix(through:)
Methode
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. Verwenden vonremoveSubrange(_:)
Methode
Komplexität: O ( n ), wobei n die Länge der Sammlung ist.
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. Verwenden vondropLast(_:)
Methode
Komplexität: O (1) wenn die Sammlung übereinstimmt RandomAccessCollection
; andernfalls O ( k ), wobei k die Anzahl der zu löschenden Elemente ist.
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
Elemente eines zurückzugebenArray
.