Scala是否有相当于ML的"as"结构的声明?

Eva*_*ske 9 scala sml pattern-matching

在ML中,可以为匹配模式的每个元素指定名称:

fun findPair n nil = NONE
| findPair n (head as (n1, _))::rest =
    if n = n1 then (SOME head) else (findPair n rest)
Run Code Online (Sandbox Code Playgroud)

在这段代码中,我为第一对列表定义了一个别名,并匹配了该对的内容.Scala中是否有等效的构造?

Dao*_*Wen 14

您可以使用符号进行变量绑定@,例如:

scala> val wholeList @ List(x, _*) = List(1,2,3)
wholeList: List[Int] = List(1, 2, 3)
x: Int = 1
Run Code Online (Sandbox Code Playgroud)