在scala中省略多行的大括号
我见过一些scala代码示例,其中多行代码用作没有大括号的代码块,例如:在scala中省略多行的大括号,scala,Scala,我见过一些scala代码示例,其中多行代码用作没有大括号的代码块,例如: x match { case a:Int => val b = 1 val c = b +3 println("hello!") c case _ => 5 } 与使用以下形式的隐式参数的某些非常长的函数相同: a.map { implicit x => // many, many complex lines of code } 与之相反: a.map {
x match {
case a:Int =>
val b = 1
val c = b +3
println("hello!")
c
case _ => 5
}
与使用以下形式的隐式参数的某些非常长的函数相同:
a.map { implicit x =>
// many, many complex lines of code
}
与之相反:
a.map { implicit x => {
// many, many complex lines of code
}}
我已经看到很多文档/常见问题解答指出,多行代码应该总是用大括号括起来,但是找不到对这些异常的解释。我很想理解或者有一个好的直觉,这样我就不会觉得这有魔力了。在case语句中,body虽然看起来像块,但实际上是函数文本的表达式部分,遵循
arg=>expr
的形式。由于case
语句被另一个case
语句或case
块的结束方括号终止,函数文本的边界是隐式定义的,表达式不需要自己的块分隔符您介意指向您正在引用的文档吗?函数文本的答案:您的答案很好,我找到了我的答案。然而,由于这是一个重要的问题,初学者和许多其他人也可能会看看它。你能纠正一下答案中的一些错误吗?谢谢