2010-06-16 125 views
2

有什麼辦法來創建一個類似於這樣:varargs參數作爲類型參數?

class F[A] {def apply(a: A) = println(a)} 

,這樣我可以:

(new F[Int*])(1,2,3) 

UPDATE:但除此之外,我想F到接受正常的參數:

(new F[Int])(1) 

回答

1
scala> class F[A] { def apply(a: A*) = a.length } 
defined class F  

scala> val instance = new F[Int] 
instance: F[Int] = [email protected] 

scala> instance(1,2,3,4,5) 
res4: Int = 5 
+0

不完全是我想要的(我想申請有簽名a:A),但它確實讓我意識到我可以只是總是使用A * ... – IttayD 2010-06-16 11:40:36