`rest*` 与 `rest @ _*`

问题描述 投票:0回答:1
val List(a, b, c, rest*) = ...

val List(a, b, c, rest @ _*) = ...

两者似乎都有效,但我遇到过前者引发错误“坏简单模式”的情况。不过只是偶尔。

这是为什么?

scala
1个回答
0
投票

这是 Scala 2 和 Scala 3 语法之间的差异。到目前为止,Scala 2 语法在 Scala 3 中仍然有效

Scala 2:

val List(a, b, c, rest @ _*) = ...

https://scastie.scala-lang.org/SJbD2tTBQgiI4kF6Lun1rQ

https://scastie.scala-lang.org/lCVAKK2WTlG99n6bBh4Tcw

Scala 3:

val List(a, b, c, rest*) = ...

https://scastie.scala-lang.org/rV7UCBDaRzWyXLFNeRxxsg

© www.soinside.com 2019 - 2024. All rights reserved.