Код:Swift: Снизить с закрытием
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
, и первый параметр будет результатом того, что возвращается это закрытие?
Это что-то по умолчанию, что вторым параметром, переданным в закрытии, будет элемент из массива, который выполняет функцию уменьшения?