Scala中的反向滴答用法是什么

Man*_*dha -1 scala

我在一本书中找到了以下代码

val list = List(5, 4, 3, 2, 1)
val result = (0 /: list) { (`running total`, `next element`) ?
  `running total` - `next element`
}
Run Code Online (Sandbox Code Playgroud)

反引号用于创建带空格的变量名吗?

pam*_*amu 6

使用后票无效的变量名可以有效。使用反引号时,也可以将scala保留的关键字用作变量名。您可以使用带空格的,甚至用换行符分隔的带有反斜杠的变量作为有效变量名。

Scala反引号

scala> val `hello world` = "asdjaklsdja"
hello world: String = asdjaklsdja

scala> val `val` = "fasfasadsas"
val: String = fasfasadsas

scala> val `class` = "fasfasadsas"
class: String = fasfasadsas

scala> val `case` = "fasfasadsas"
case: String = fasfasadsas

scala> val `foo bar \n foo bar` = "asdasdasd"
foo bar
 foo bar: String = asdasdasd
Run Code Online (Sandbox Code Playgroud)

模式匹配中的反引号

scala> val age = 18
age: Int = 18

scala> :paste
// Entering paste mode (ctrl-D to finish)

def is18(a: Int): Boolean = a match {
 case `age` => true
 case _ => false
}

// Exiting paste mode, now interpreting.

is18: (a: Int)Boolean

scala> is18(21)
res0: Boolean = false

scala> is18(18)
res1: Boolean = true
Run Code Online (Sandbox Code Playgroud)

在模式匹配中,它可以帮助您像使用变量一样创建变量。