Implicit conversions
The Standard Scala FAQ page describes implicit conversions as: "If one calls a method m
on an object o
of a class C
and that class C
does not support method m
, then Scala compiler will look for an implicit conversion from C
type to something that does support m
method".
The idea is clear: it's a synthetic behavior (using a method) that we're forcing on instances of a particular type, and these behaviors (methods) aren't a part of the defined type. It's like we have a library with certain functionalities already available and we want to give some add-on functionality to a certain type from the library. Think about it—this is powerful. Having the ability to add on a functionality for a particular type is itself powerful. And that's what implicits let us do. We'll try our hand at something like the following.
First, think of a scenario where we want to create some syntax methods. We have a few methods available for the date-time library java.time.LocalDate
that can help us...