Swift Language Trasformare gli elementi di una matrice con la mappa (_ :)


Esempio

Dato che Array conforme a SequenceType , possiamo usare map(_:) per trasformare un array di A in un array di B usando una chiusura di tipo (A) throws -> B

Ad esempio, potremmo usarlo per trasformare una matrice di Int in una serie di String s in questo modo:

let numbers = [1, 2, 3, 4, 5]
let words = numbers.map { String($0) }
print(words) // ["1", "2", "3", "4", "5"]

map(_:) scorrerà l'array, applicando la chiusura data a ciascun elemento. Il risultato di tale chiusura verrà utilizzato per popolare un nuovo array con gli elementi trasformati.

Poiché String ha un inizializzatore che riceve un Int possiamo usare anche questa sintassi più chiara:

let words = numbers.map(String.init)

Una trasformazione di map(_:) non ha bisogno di cambiare il tipo di array - per esempio, potrebbe anche essere usato per moltiplicare un array di Int s per due:

let numbers = [1, 2, 3, 4, 5]
let numbersTimes2 = numbers.map {$0 * 2}
print(numbersTimes2) // [2, 4, 6, 8, 10]