Functions as Objects in Scala PRO

Function values are treated as objects. The function A=>B is an abbreviation for using a new object instantiated from a class that extends the scala.Function1[A,B] trait and overrides the apply function. There are currently Function1, Function2, Function3… etc… up to Function22, that takes 22 parameters. The following code sample shows that.

object HelloSample
{
  def main(args:Array[String]):Unit =
  {
    val func1 = (num:Int) => 2*num
    println(func1(4))
    val func2 = new MyFunction
    println(func2(4))
  }
}

// (num:Int) => 2*num
class MyFunction extends Function1[Int,Int]
{
  def apply(num:Int) = 2*num
}

The following video clip overviews this code sample, shows its execution and explains it.

Share:

The Beauty of Code

Coding is Art! Developing Code That Works is Simple. Develop Code with Style is a Challenge!

Update cookies preferences