Ich machte eine Methode, die eine Integer- und Boolesche Methode als Argument übergeben (Diese Methode benötigt eine ganze Zahl als Argument). Als ich diese Methode aufgerufen und die Integer- und Boolean-Methode übergeben habe, funktionierte der Code, ohne dass ich die ganze Zahl in der booleschen Methode übergeben musste, warum ist das so?In einer Methode, die eine andere Methode als Argument übergibt, warum benötigt das übergebene Argument nicht sein übergebenes Argument?
(Der folgende Code nicht mein eigenes ist und von der Apple-Einführung in Swift Ressource genommen)
func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool{
for item in list{
if condition(item){
return true
}
}
return false
}
func lessThanTen(number:Int) -> Bool{
return number < 10
}
var numbers = [20,19,2,30,12]
hasAnyMatches(list: numbers, condition: lessThanTen)
Zum Beispiel in diesem Fall muss lessThanTen eine ganze Zahl als Argument übergeben werden, doch wenn ich rufe hasAnyMatches Ich habe keine ganze Zahl an lessThanTen übergeben. Warum funktioniert der Code trotzdem?
Die Funktion selbst wird als Argument übergeben. Es wird dann bei "if condition (item) {...)" aufgerufen –