Today we are leveling up !
Introducing several use cases for the mysterious_
. I consider all those use cases to fall under the “Placeholder” category but the technical terms can be more granular. In the extra explanation, after the exercise, I will put a link with more in detailed description if you want to dive deeper.
Sorry it was a lengthy exercise !
The first use case is related topartial function. It allows you to put a placeholder where an argument of a function would be to create a new function that take as argument the missing argument(s).
You can omit more than one argument and the input of the new function will be those omitted arguments.
The second use case is during transformations or chained operation such asmap
,flatMap
,filter
, etc…
Now, when you see something likea => a ...
, you know you can replace it with_
.
As a side note, in IntelliJ, you can put your caret on the variable ( the variable name before the=>
), pressALT+ENTERand you should be seeing something like“Convert parameter to underscore section”. That will replace the variable by_
for you.
The third and last example under the categoryPlaceholderis when you are computing accumulations. Using function such asfoldLeft
orreduce
. Explaining why sometime you have to usea._1 + a._2
and sometime_ + _
is beyond this lesson. But now you know what it means when you read things like.reduce(_*_)
: it is simply.product
.
There are a lot more use case for_
that falls under other categories and we are going to see them in later SKBs.
If you want to know more, feel free to check out thisStackoverflow answer.