voglio migliorare su una chiusura che ho scritto utilizzando la funzione Array.map di SwiftSwift Array.map questione chiusura
praticamente sto prendendo un array e rimappatura tutti i suoi elementi utilizzando una chiusura.
// Here's the array:
var numbersArray = [1, 2, 3, 4, 5]
// Here's the closure - it takes whatever number is passed into it and
// multiplies it by 2.0
var multiplier = { (currentNum: Int) -> Double in
let result = Double(currentNum) * 2.0
return result
}
// And here's how I'm calling it:
var newArray = numbersArray.map(multiplier)
E questo funziona perfettamente.
Ma cosa succede se voglio moltiplicare tutto per 2.1? o 3,5? o qualche valore? In altre parole, cosa succede se voglio rendere l'importo che moltiplico anche per una variabile ? E sarà passato alla chiusura come secondo argomento?
Ho provato ad aggiungere alla lista di argomenti come questo:
var multiplier = { (currentNum: Int, factor: Double) -> Double in
let result = Double(currentNum) * factor
return result
}
e poi cambiare la mia chiamata a questo:
var newArray = numbersArray.map(multiplier, 3.5)
ma sto ottenendo tutti i tipi di errori (e ho provato Ovviamente tutte le varianti di questo.)
Cosa sto facendo male?
Questo è abbastanza bad-ass: -) Molto intelligente. È praticamente l'unico modo per farlo? – sirab333
È l'unico modo in cui riesco a pensare almeno. Io non sono davvero un maestro della programmazione funzionale, anche se – connor
abbastanza giusto. Anche se non è l'unico modo "migliore" per farlo, è sicuramente molto interessante. Ti darò la giusta risposta. Saluti :-) – sirab333