我想拥有可以用list,array,seq,set,stack,queue等实例化的类.在我看来
class A
class B(elems:A*)
Run Code Online (Sandbox Code Playgroud)
应该处理这样的东西.
这是我的解决方案:
class A
class B(elems:Iterable[A]){
def this(elem:A) = this(Seq(elem))
}
Run Code Online (Sandbox Code Playgroud)
你能建议任何改进吗?
Ran*_*ulz 10
可以使用: _*
ascription 将任何Seq或Array传递给具有重复参数的方法:
scala> def m1(strs: String*): Int = { strs.foldLeft(0)(_ + _.length) }
m1: (strs: String*)Int
scala> m1("foo", "bar")
res0: Int = 6
scala> val ss1 = Array("hello", ", ", "world", ".")
ss1: Array[java.lang.String] = Array(hello, , , world, .)
scala> m1(ss1: _*)
res1: Int = 13
scala> val ss2 = List("now", "is", "the", "time")
ss2: List[java.lang.String] = List(now, is, the, time)
scala> m1(ss2: _*)
res2: Int = 12
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
118 次 |
最近记录: |