{ $0 }, , ElementOfResult? ( ) Element ( ). Element - String?, ElementOfResult? == String?. , ElementOfResult String.
flatMap(_:) [String].
ElementOfResult? ElementOfResult , . .
, , , , (. ). :
Swift , [ ]. , , : Swift , , , Haskell OCaml, , , .
, , , map(_:) flatMap(_:) ( ), .
, :
// error: Unable to infer complex closure return type; add explicit type to disambiguate.
let result = albums.flatMap {
print($0 as Any)
return $0
}
:
// explicitly annotate [ElementOfResult] to be [String] – thus ElementOfResult == String.
let result: [String] = albums.flatMap {
print($0 as Any)
return $0
}
let result = albums.flatMap { element -> String? in
print(element as Any)
return element
}