Scala 2 和 Scala 3 之间的差异之一是可变参数拼接的语法。
如此给出
def combine(strings: String*): Unit = {
println(strings.mkString("; "))
}
val list = List("a", "b")
在 Scala 2 中,可以使用以下方式调用该函数:
combine((list ++ list): _*)
在 Scala 3 中语法是:
combine((list ++ list)*)
问题我知道我可以将参数类型定义为
Seq[String]
,但这会放弃可变参数的便利性。假设我可以更改方法定义和调用站点。
-Xsource:3
中使用
-Xsource-feature
(可能与
-Xsource:3-cross
一起使用,或与
scalacOptions
一起使用)。然后:
combine((list ++ list)*)
可以在 Scala 2 和 Scala 3 中编译。