Paw*_*elN 1 scala string-interpolation
我正在深入研究 Scala 的字符串插值功能,我想知道使用它是否安全。字符串插值允许我们评估表达式,如:
println(s"Hello World! ${for (i <- 1 to 100) println(s"other values $i")}")
Run Code Online (Sandbox Code Playgroud)
我的疑问是我们是否应该评估内插字符串中的表达式。我看到很多其他开发人员正在使用此功能的 Scala 代码,例如示例中,但不知道这是否正确和安全。
我永远不会使用它,我也不希望我的同事使用它。
有两件事基本上是关闭的:
那里不仅有一个复杂的表达式,而且您正在使用副作用,因此在评估插值的过程中将打印 100 个值。所以你得到
other values 1
other values 2
...
other values 100
Hello World! ()
Run Code Online (Sandbox Code Playgroud)其中()是 for-comprehension 的返回值,即Unit。
我会为自己(和我的同事)省去巨大的头痛,然后就去做
println(s"Hello World!")
for (i <- 1 to 100) {
println(s"other values $i")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
674 次 |
| 最近记录: |