Jor*_*ero 2 scala variadic-functions
有谁知道我们如何以自动方式从任何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
Run Code Online (Sandbox Code Playgroud)
这是唯一的方法.这就是为什么varargs可以说最好只用于库的公共接口,即便如此,特别是当你认为调用者将使用字面指定的元素而不是集合进行调用时.如果一个方法很可能会在一个集合参数上被调用,那么varargs可以适应其减少语法噪音的目标,正如你所注意到的那样.
| 归档时间: |
|
| 查看次数: |
653 次 |
| 最近记录: |