The flatMap()
method is designed to allow you to transform optionals and elements inside a collection while also decreasing the amount of containment that happens. For example, if you transform an optional in a way that will also return an optional, using map()
would give you an optional optional (a double optional), whereas flatMap()
is able to combine those two optionals into a single optional.
let lengthOfFirst = names.first.flatMap { count($0) }
Decreasing the amount of containment also makes flatMap()
a simple way of converting multi-dimensional arrays into single-dimensional arrays:
[[1, 2], [3, 4], [5, 6]].flatMap { $0 }
There is no "map" operation there, so we're just left with the flattening behavior – that will result in a single array containing the value [1, 2, 3, 4, 5, 6]
.
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Download all Swift 1.2 changes as a playground Link to Swift 1.2 changes
Link copied to your pasteboard.