我做了一个方法,它传递一个整数和布尔方法作为参数(该方法需要一个整数作为参数)。当我调用这个方法并传递了整数和布尔方法时,代码无需我在布尔方法中传递整数,这是为什么?在传递另一个方法作为参数的方法中,为什么passes参数不需要传递它的参数?
(下面的代码是不是我自己的,并从苹果公司推出斯威夫特资源获取)
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)
例如,在这种情况下,lessThanTen需要一个整数作为参数传递,但是当我打电话hasAnyMatches我没有把一个整数传递给lessThanTen。为什么尽管这样的代码仍然有效?
函数本身作为参数传递。如果条件(项目){...)'被调用 –