gpt4 book ai didi

scala - 在scala中省略多行的花括号

转载 作者:行者123 更新时间:2023-12-04 12:40:21 25 4
gpt4 key购买 nike

我见过一些 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 { implicit x => {
// many, many complex lines of code
}}

我看过很多文档/常见问题解答,说明多行代码应始终用大括号括起来,但找不到这些异常的解释。我很想理解或有一个很好的直觉,所以这对我来说并不像魔法。

最佳答案

在 case 语句中,主体虽然看起来像 block ,但实际上是函数字面量的表达式部分,形式为 arg => expr。 .由于case语句被另一个 case 终止语句或 case 的右大括号 block ,函数字面量的边界是隐式定义的,表达式不需要自己的 block 分隔符

关于scala - 在scala中省略多行的花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32765416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com