Understanding Map functions in Swift
In Swift we have map
, flatMap
and now compactMap
. What do each of these functions do and how can we use them? Let’s have a look at map
…
Part 1: Map
The map
function takes a collection (often an array) and a function, and returns an array of items from the collection with the function applied to each item:
So for example, we could take an array of integers and a function which multiplies integers by 2:
Or given a list of names, we could capitalise them all:
[NB: If the curly brackets or $0 notation are not familiar then it’s worth reading up on closures before continuing]
The same result can be achieved by looping through each element in the array as follows:
So why use the map function?
map
is declarative. We are declaring what we want the code to do, rather than how we want it to do it (imperative). The code is therefore declaring our intent, so should be clearer and easier to understand.- With
map
we could declare the resulting array withlet
whereas with a loop we need to usevar
. If we don’t want this array to change after we’ve made it then this is safer code.
Next up flatMap
… coming soon!