有谁知道我们如何以自动方式从任何 Seq 转换为 _*?每次我们有一个 Seq 并且方法使用 vararg 类型的参数时,强制类型是非常麻烦的。
def mean[T: Numeric](elems: T*): Double
...
elems = Seq(1.0, 2.0, 3.0)
mean(elems) // this doesn't compiles
mean(elems: _*) // this compiles but it is cumbersome
最佳答案
这是唯一的方法。这就是为什么可以说可变参数最好只用在库的公共(public)接口(interface)上的原因,即便如此,尤其是当您认为调用者将使用字面指定的元素而不是集合进行调用时。如果一个方法可能会在集合参数上被调用,可变参数可能会适得其反,正如您已经注意到的那样,它的目标是减少语法噪音。
关于scala - 在 Scala 中从 seq 到 _*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28517486/