被實例構造函數的參數創建類我想有類,可以用列表,陣列,序列被實例化,設置棧,隊列等 在我看來可以與單個或多個元素斯卡拉
class A
class B(elems:A*)
應該處理這樣的東西。
這是我的解決方案:
class A
class B(elems:Iterable[A]){
def this(elem:A) = this(Seq(elem))
}
你可以提出任何改進?
被實例構造函數的參數創建類我想有類,可以用列表,陣列,序列被實例化,設置棧,隊列等 在我看來可以與單個或多個元素斯卡拉
class A
class B(elems:A*)
應該處理這樣的東西。
這是我的解決方案:
class A
class B(elems:Iterable[A]){
def this(elem:A) = this(Seq(elem))
}
你可以提出任何改進?
任何序列或陣列可以通過使用: _*
歸屬傳遞給一個方法反覆參數:
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
並不: class B(elems:A *) 是否有訣竅? – Thomas 2010-06-01 14:33:04