O'Reilly logo

Learning Scala Programming by Vikash Sharma

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

What are closures?

We'll solve the problem in the previous section using closures. But first, let's explain the concept of a closure. In programming terminology, a closure has more than one definition:

  • A closure is simply a function value that gets created at runtime and encompasses a reference to a free variable that's not in the local scope
  • A closure in practical terms is a function that you can pass around that retains the same scope and values as the ones it had at the time of creation

What do we mean by these statements? Let's check that using a very simple, but a fun example:

object AClosure extends App { var advertisement = "Buy an IPhone7" val playingShow = (showName: String) => println(s"Playing $showName. Here's the advertisement: ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required