Con Swift 5, in base alle tue esigenze, puoi scegliere uno dei 6 seguenti codici Playground per risolvere il tuo problema.
# 1. Usando il subscript(_:)
pedice
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. Usando il prefix(_:)
metodo
Complessità: O (1) se la raccolta è conforme RandomAccessCollection
; in caso contrario, O ( k ), dove k è il numero di elementi da selezionare dall'inizio della raccolta.
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 afferma per prefix(_:)
:
Se la lunghezza massima supera il numero di elementi nella raccolta, il risultato contiene tutti gli elementi nella raccolta.
# 3. Usando il prefix(upTo:)
metodo
Complessità: 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 afferma per prefix(upTo:)
:
L'uso del prefix(upTo:)
metodo equivale all'utilizzo di un intervallo parziale parzialmente aperto come indice della raccolta. La notazione in pedice è preferita prefix(upTo:)
.
# 4. Usando il prefix(through:)
metodo
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. Usando il removeSubrange(_:)
metodo
Complessità: O ( n ), dove n è la lunghezza della raccolta.
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. Usando il dropLast(_:)
metodo
Complessità: O (1) se la raccolta è conforme RandomAccessCollection
; altrimenti, O ( k ), dove k è il numero di elementi da eliminare.
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
elementi di unArray
.