This SKB will teach you a little more about some syntax allowed by the Scala language: infix.
It allows you to remove the
. and the
() when using a method.
First of all, did you realize that every operation that seems to be “magic” like the
== are just function like any other. But by habit , we use the infix notation for those by default. It is possible to use the “normal” notation with the
. and the
() but let's be honest, it looks weird !
You can use the infix notation for every method that takes one argument. Which means you can use it for
flatMap and all the other ones.
We also kind of saw it quickly previously when we talked about
reduce. We saw that we could turn
list.reduce ( (a, b) => a.combineWith(b) )into
list.reduce ( _ combinedWith _ )You now understand one part of puzzle. The second part being the
_that we are going to see soon.
One last note, be careful not to abuse it or the code can become extremely horrible to decipher. You could chain methods are methods and lost track of which value is executing what.
a map _ combined v map _ + 1This example is hard to read. Does
combinedreturn a list ? What is the second
mapapplied to ? So, be careful !
It is also possible to use infix notation for function that has no arguments, but it is an extra feature, not included by default that you need to enable. To learn more, you can search for
scala.language.postfixOps which allow you to use infix notation even without an argument.