代码:夫特:减少与闭合
var treasures: [Treasure] = []
treasures = [treasureA, treasureB, treasureC, treasureD, treasureE]
let rectToDisplay = self.treasures.reduce(MKMapRectNull) {
(mapRect: MKMapRect, treasure: Treasure) -> MKMapRect in
// 2
let treasurePointRect = MKMapRect(origin: treasure.location.mapPoint, size: MKMapSize(width: 0, height: 0))
// 3
return MKMapRectUnion(mapRect, treasurePointRect)
}
在上面的代码中,我们所运行的减少对treasures
阵列的功能,两个参数被传递在闭合:(mapRect: MKMapRect, treasure: Treasure)
。闭包如何知道第二个参数是来自treasures
数组的元素,第一个参数是闭包返回的结果?
这是默认情况下,在闭包中传递的第二个参数将是数组中执行reduce函数的元素吗?