-
Book Overview & Buying
-
Table Of Contents
Scala Design Patterns
By :
In Scala, every value is an object. Functions are first class values, which also makes them objects of their respective classes. The following figure shows the Scala unified type system and how this is achieved. It is adapted from http://www.scala-lang.org/old/sites/default/files/images/classhierarchy.png and represents an up-to-date view of the model (some classes such as ScalaObject have disappeared, as we have already mentioned before).
As you can see, Scala does not have the same concept of primitive types that Java has and all types are ultimately subtypes of Any.

The fact that functions are classes means that they can be freely passed to other methods or classes as if they were just values. This leads to improving the expressiveness of Scala and making it much easier to achieve things, such as callbacks, than in other languages such as Java.
Let's have a look at an example:
class FunctionLiterals {
val sum = (a: Int,...
Change the font size
Change margin width
Change background colour