If you look at the flatMap(_:)signature,
extension Sequence {
public func flatMap<SegmentOfResult : Sequence>(_ transform: (Self.Iterator.Element) throws -> SegmentOfResult) rethrows -> [SegmentOfResult.Iterator.Element]
}
, [SegmentOfResult.Iterator.Element], SegmentOfResult - , , . , Element ( ), .
, , , Element : Sequence.
, , flatMap(_:), ( , ), [Element.Iterator.Element] ( ).
extension Array where Element : Sequence {
func flat() -> [Element.Iterator.Element] {
return self.flatMap { $0 }
}
}
, , Sequence:
extension Sequence where Iterator.Element : Sequence {
func flat() -> [Iterator.Element.Iterator.Element] {
return self.flatMap { $0 }
}
}
( , , - array.flatMap{$0} !)