Println
In Scala 3.3 we often have console programs that perform computations. The programs must write data to the console—or their results will remain unknown.
With print, println
and printf
we report to the screen. And with methods from scala.io.StdIn
we read data from the console. We build interactive programs.
Println
exampleWith the print methods we write data (like Strings or Ints) to the screen. Here we use 3 print functions—we do not need to access the Console
type directly.
Println
writes a value to the console and adds a trailing newline. We can pass Strings, Ints or other types to it.Print()
is the same as println
but it adds no trailing newline. It just writes the data to the start of a line.Printf
writes a format string
and inserts additional arguments. It is similar to the Java String.format
method.object Program { def main(args: Array[String]): Unit = { // Use println on a string. println("Hello") // In Scala println is the same as Console.println. Console.println("World") // Use print to have no trailing newline. print("ABC") print(123) println() // Use printf with a format string. printf("Number = %d", 123) } }Hello World ABC123 Number = 123
Here we get input from the user in the form of a string
. The predefined readLine
is deprecated, so we must access Scala.io.StdIn
for a better version.
readLine
is invoked. Type something (like "cat") and press return. The variable now contains that string
.object Program { def main(args: Array[String]): Unit = { // Use an infinite loop. while (true) { // Read a line from the console window. val line = scala.io.StdIn.readLine() // Write the result string and a newline. printf("You typed: %s", line) println() } } }cat You typed: cat bird You typed: bird
String
interpolationIn Scala 3.3 we can use string
interpolation syntax. We precede the string
with lowercase "s" and then use the "$" symbol to refer to variable names.
object Program { def main(args: Array[String]): Unit = { val name = "birds" val color = "yellow" val amount = 12 // Use string interpolation syntax for output. println(s"The $amount $name are $color"); } }The 12 birds are yellow
The print and println
functions are part of the predefined (Predef) object in Scala. These can be used anywhere, and are aliases to Console
methods.
def print(x: Any) = Console.print(x) def println() = Console.println()
The readLine
method is deprecated. Instead of using readLine
we can call into scala.io.StdIn.readLine
. This eliminates the warning.
warning: method readLine in trait DeprecatedPredef is deprecated: Use the method in scala.io.StdIn
For beginning Scala development, writing to and reading from the console is essential. With println
and readLine
most of this need is met.