在Scala中,打印输出通常是通过标准输出流(stdout)完成的,这可以通过调用`println`或`print`方法来实现。这两个方法都定义在`Predef`对象中,该对象被隐式地添加到每个Scala程序的作用域中。
使用`println`
`println`方法用于在控制台上打印一个或多个参数,并在末尾自动添加一个换行符。这是最常用的打印输出方法。
```
println("Hello, world!")
// 输出: Hello, world!
// 然后是新的一行
```
使用`print`
`print`方法与`println`类似,但它不会在字符串末尾添加换行符。如果你想要在同一行上打印多个值或字符串,`print`会很有用。
```
print("Hello, ")
print("world!")
// 输出: Hello, world!(没有额外的换行)
```
格式化输出
虽然`println`和`print`提供了基本的打印功能,但Scala没有像Java的`System.out.printf`那样的内建格式化打印方法。不过,你可以使用字符串插值(Scala 2.10及以上版本)或`String.format`方法来实现更复杂的格式化输出。
字符串插值
字符串插值允许你在字符串中嵌入变量或表达式的值。
```
val name = "Scala"
println(s"Hello, $name!")
// 输出: Hello, Scala!
```
使用`String.format`
你也可以使用`String.format`方法,这与Java中的用法相同。
```
val name = "Scala"
println(String.format("Hello, %s!", name))
// 输出: Hello, Scala!
```
注意
- 在Scala REPL(Read-Eval-Print Loop,交互式解释器)中,当你执行一个表达式时,REPL会自动打印出该表达式的值(如果它不是`Unit`类型的话)。但在脚本或应用程序中,你需要显式地使用`println`或`print`来打印输出。
- `Unit`是Scala中的一个特殊类型,它类似于Java中的`void`。当方法不需要返回任何值时,它的返回类型就是`Unit`。在这种情况下,即使你调用了该方法,它也不会在控制台上打印出任何内容(除非方法内部显式调用了`println`或`print`)。