Book Image

Professional Scala

By : Mads Hartmann, Ruslan Shevchenko
Book Image

Professional Scala

By: Mads Hartmann, Ruslan Shevchenko

Overview of this book

This book teaches you how to build and contribute to Scala programs, recognizing common patterns and techniques used with the language. You’ll learn how to write concise, functional code with Scala. After an introduction to core concepts, syntax, and writing example applications with scalac, you’ll learn about the Scala Collections API and how the language handles type safety via static types out-of-the-box. You’ll then learn about advanced functional programming patterns, and how you can write your own Domain Specific Languages (DSLs). By the end of the book, you’ll be equipped with the skills you need to successfully build smart, efficient applications in Scala that can be compiled to the JVM.
Table of Contents (12 chapters)

Implicit Parameters and Implicit Conversions


Scala has implicit parameters and conversions. When used in a controlled manner, implicit can make working with external libraries more pleasant, and also enable some elegant patterns that you can use in your own code.

Implicit Parameters

Implicit parameters are a way to make the compiler automatically fill in some arguments when a method call misses them for some (or all) of the (implicit) parameters. The compiler will look for definitions labelled implicit of the required types. For example, suppose you want to write a program that prompts the user for some action, after displaying a message. You want to customize both the message and the string that appear on the prompt. We can assume that the prompt string will have a more default value than the message, so one way to implement it using implicit parameters is like the following:

case class Prompt(value: String)
def message(msg: String)(implicit prompt: Prompt) = {
  println(msg)
  println(s...