54
使用可變參數我撕裂了我的頭髮試圖找出如何做到以下幾點:從斯卡拉
def foo(msf: String, o: Any, os: Any*) = {
println(String.format(msf, o :: List(os:_*)))
}
還有一個原因,我不得不宣佈與o
和os
Seq
單獨的方法。基本上,我最終使用單個對象參數(類型List
)調用的格式方法。嘗試:
def foo(msf: String, o: Any, os: Any*) = {
println(String.format(msf, (o :: List(os:_*))).toArray)
}
給我的錯誤類型:
found: Array[Any]
required Seq[java.lang.Object]
我已經試過鑄造,其中編譯,但失敗了幾乎相同的理由,第一個例子。當我嘗試
println(String.format(msg, (o :: List(os:_*)) :_*))
失敗與隱式轉換歧義(any2ArrowAssoc
和any2stringadd
)
它編譯但在運行時翻倒: 異常在線程「主要」 java.lang.ClassCastException:斯卡拉$結腸結腸$不能轉換爲scala.runtime.BoxedObjectArray \t在scala.runtime.RichString .format(RichString.scala:242) – 2009-06-18 06:30:16
另外,toList從哪裏來? – 2009-06-18 07:43:03