代碼:夫特:減少與閉合
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函數的元素嗎?