Functions versus methods
At the beginning of the chapter, we mentioned that we usually use the terms function and method interchangeably. But the reality is different. In Scala, these two are different concepts altogether. We'll use several examples to help understand this.
We'll take a look at all the differences, from syntactical differences to semantic differences. We'll also look at when to use what: a function or a method. For now, let's use a previous example. For the colorPrinter
function, in both versions, we'll define a method and give it the name, colorPrintV3
:
val colorPrint = (index: Int) => println(s"Printing Color Page $index.") val colorPrintV2 = new Function1[Int, Unit]{ override def apply(index: Int): Unit = println(s"Printing Color Page $index.") } def colorPrintV3(index: Int) = println(s"Printing Color Page $index.")
The way we can call these is similar. Syntactically there's no difference:
println("---------Function V1-----------") printPages(Document...