Introduction
This article is part of the Scala knowledge bits Series.
Periodically, I will publish new exercises so you can slowly build up knowledge about Scala.
It is designed to be done in a very short amount of time and learn a little bit each day, just to create a routine.
This episode will teach you about Scala _
placeholder.
Hope you are going to enjoy it! It is designed for anyone to learn Scala from scratch and slowly learn, one Bit at a time.
After this Bit, I would love to hear your feedback in the comments down below.
Feel free to join the Discord server as well if you would like some help and support from the rest of our community.
What are we learning today?
Today we are going to learn about Scala _
placeholder !
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.
Time to try on the exercise on your own and scroll down for more information when you are done or if you are stuck.
Exercise
Here is an exercise to complete today.
If I did my job well, you should be able to guess by yourself the solution based on what you previously learned and based on the clues.
But if you get stuck, scroll down to get more information.
The goal of the exercise is to replace the ???
by a piece of code so that the exercise compiles and that’s how you win! Good luck!
You can fill the exercise right in here:
Or, if it does not load, go on to Scastie (y3LB3ugXQKOR4VhY3aaotA).
More information about Scala _
placeholder
In this exercise you will learn (or have learned, if you have already solved the puzzle) about Scala _
placeholder.
Sorry it was a lengthy exercise !
The first use case is related to partial 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 as map
, flatMap
, filter
, etc…
Now, when you see something like a => 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 =>
), press ALT+ENTER and 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 category Placeholder is when you are computing accumulations. Using function such as foldLeft
or reduce
. Explaining why sometime you have to use a._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 this Stackoverflow answer.
Feel free to go back to the exercise, modify the code to try out new things
and get a better intuition for Scala _
placeholder.
Conclusion
I hope you have learned something new or had fun during this Scala Knowledge Bit.
Please ask questions or post feedback in the comments below.
Feel free to try on the next Scala Knowledege Bit.
If you are curious about the previous Scala knowledge Bits, go check it out! 🙂