我正在尝试破译别人的代码。以下内容出现在 Scala 特征中。这不是它的确切内容,我展平了一些细节以使其更通用(在包含 zipWithIndex 方法的闭花括号之前有一些额外的行,以及一些其他模式匹配的东西。)我主要关心的是我对这个概念不熟悉;一个以左花括号开头的值定义,然后是一堆缩进的内容。
val example: ExampleType = {
val anOtherExample = "String"
val yetAnOtherExample = 22
new ExampleType(anOtherExample, yetAnOtherExample)
}
最佳答案
拥有类似 C 语言和/或 Java 的经验,您可能已经习惯了花括号 {}
表示一段代码 - 即只是一个将调用的指令集。
Scala 在这部分有所不同,因为在 Scala 中几乎所有内容都是表达式,即几乎所有内容都会计算为某个值,因此可以分配给 val
、作为参数传递等。
因此,Scala 中的代码块不仅仅是指令序列,而是可以赋值和传递的有效表达式。代码块的计算结果为该 block 中的最后一个表达式,即
val x: Int = {
doSomething()
doSomethingElse()
42
}
在上面的示例中,x
将分配 42 作为其值。
关于scala - 这个 Scala 语法是什么意思——值定义后跟左大括号和缩进的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31892654/