The Scala REPL (Read-Eval-Print Loop) is an interactive shell that allows developers to write and test Scala code in real-time. It's a powerful tool for learning, experimenting, and debugging Scala programs.
The REPL is an interactive environment where you can enter Scala expressions and statements. It immediately evaluates your input and displays the results. This instant feedback makes it an excellent tool for exploring Scala's features and testing code snippets.
To start the Scala REPL, simply open a terminal and type:
scala
This command launches the REPL, and you'll see a prompt where you can start entering Scala code.
In the REPL, you can enter Scala expressions and see their results immediately. Here's a simple example:
scala> 1 + 1
res0: Int = 2
scala> "Hello, " + "Scala!"
res1: String = Hello, Scala!
The REPL automatically assigns names (like res0
and res1
) to the results, which you can use in subsequent expressions.
You can define variables and functions in the REPL just as you would in a Scala program:
scala> val x = 5
x: Int = 5
scala> def square(n: Int) = n * n
square: (n: Int)Int
scala> square(x)
res2: Int = 25
For multiline input, such as defining classes or complex functions, you can use the :paste
command:
scala> :paste
// Entering paste mode (ctrl-D to finish)
case class Person(name: String, age: Int)
val john = Person("John", 30)
john.name
// Exiting paste mode, now interpreting.
defined class Person
john: Person = Person(John,30)
res3: String = John
:help
- Display help information:quit
or :q
- Exit the REPL:type <expr>
- Show the type of an expression:imports
- Show active imports:reset
- Reset the REPL to its initial stateThe Scala REPL can be integrated with SBT (Simple Build Tool), allowing you to access your project's classes and dependencies. To start the REPL within an SBT project, use the sbt console
command.
:save
command for future referenceThe Scala REPL is an invaluable tool for both beginners and experienced Scala developers. It provides a low-stakes environment to experiment with Scala syntax, data types, and functions. By mastering the REPL, you'll accelerate your Scala learning and become more proficient in interactive programming.