la poca conoscenza, ho circa la funzione di prima classe è che supporta il passaggio di funzioni come argomenti e possiamo anche restituirli come i valori in un'altra funzione ... Sono molto nuovo nel linguaggio di programmazione Swift può qualsiasi per favore elaborarlo con un esempio."Le funzioni sono di prima classe" in swift?
risposta
Un esempio molto semplice per illustrare questo comportamento:
func functionA() {
println("Hello by functionA")
}
func executeFunction(function:() ->()) {
function()
}
executeFunction(functionA)
Una funzione che restituisce una funzione durante l'acquisizione di un valore dall'ambiente lessicale:
Una funzione di un array di Comparabili che restituiscono una funzione di un predicato di test che restituisce una funzione di un valore che restituisce un Bool se il valore è l'estremo dell'array in prova. (Accattivarsi) funzioni
di prima classe sono funzioni che possono restituire un altro funzioni. Per esempio:
func operate(operand: String) -> ((Double, Double) -> Double)?{
func add(a: Double, b: Double) -> Double {
return a + b
}
func min(a: Double, b: Double) -> Double{
return a - b
}
func multi(a: Double, b: Double) -> Double {
return a * b
}
func div (a: Double, b: Double) -> Double{
return a/b
}
switch operand{
case "+":
return add
case "-":
return min
case "*":
return multi
case "/":
return div
default:
return nil
}
}
La funzione operate
restituisce una funzione che prende due doppie come argomenti e restituisce una doppia.
L'utilizzo di questa funzione è:
var function = operate("+")
print(" 3 + 4 = \(function!(3,4))")
function = operate("-")
print(" 3 - 4 = \(function!(3,4))")
function = operate("*")
print(" 3 * 4 = \(function!(3,4))")
function = operate("/")
print(" 3/4 = \(function!(3,4))")
Quando non si preoccupano l'implementazione di una funzione, utilizzando le funzioni di prima classe per tornare queste funzioni diventano organismi utili. Inoltre, a volte, non sei responsabile dello sviluppo (o non dell'autorizzazione) delle funzioni come add
, min
. Così qualcuno svilupperebbe una funzione di prima classe per te che restituisce queste funzioni ed è tua responsabilità continuare ....
Grazie per la spiegazione dettagliata – skkrish
- 1. Quali sono le differenze tra funzioni e metodi in Swift?
- 2. Le classiche di scala sono di prima classe?
- 3. Svantaggi delle funzioni di prima classe
- 4. Scala: problemi con le funzioni come oggetti di prima classe
- 5. Come passare le funzioni di callback in Swift
- 6. Le funzioni JavaScript sono asincrone?
- 7. Le funzioni in coda JavaScript sono ottimizzate?
- 8. Come testare le funzioni di lancio delle unità in Swift?
- 9. Le funzioni di sistema() C sono ok?
- 10. In C++, dove sono messe in memoria le funzioni di classe?
- 11. Le funzioni sono definite indipendentemente dall'ordine?
- 12. Scala - sovraccarico di invocare 'funzioni di prima classe'
- 13. Il compilatore Swift ignora le funzioni inutilizzate?
- 14. Swift - UITableView all'interno di UIViewController, le funzioni di UITableView non sono chiamate
- 15. Creare dinamicamente le funzioni di classe
- 16. Utilizzando funzioni sovraccaricate come cittadini di prima classe
- 17. Utilizzo di "self" nelle funzioni di estensione di classe in Swift
- 18. Le funzioni JSTL non sono state trovate in JSF
- 19. Quali sono le buone euristiche per le funzioni di inlining?
- 20. In che modo le funzioni di HoG sono rappresentate graficamente?
- 21. Dove mettere le funzioni riutilizzabili in IOS Swift?
- 22. In che modo le funzioni dell'operatore sul posto di Python sono diverse dalle funzioni standard dell'operatore?
- 23. Inizializzatore di classe in Swift?
- 24. quali sono le regole per gli spazi in swift
- 25. Come si scrivono le funzioni di Infix Swift?
- 26. Unity5 Le funzioni AssetBundle sono obsolete?
- 27. Le funzioni NPP non sono completamente ottimizzate?
- 28. Le funzioni analitiche Oracle sono costose?
- 29. Come sovrascrivere le funzioni di una classe genitore in python?
- 30. Come ignorare le funzioni di classe String in C#
Ti consigliamo di leggere i [Tipi di funzione] (https://developer.apple.com) /library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Functions.html#//apple_ref/doc/uid/TP40014097-CH10-XID_270) sezione nel libro Swift di Apple. –