我有一個函數:如何在Scala中將List傳遞給Int *方法?
def test(ints: Int*) = ints.foreach(println(_))
如何轉換數組[INT]或序列[INT]爲Int *?
我有一個函數:如何在Scala中將List傳遞給Int *方法?
def test(ints: Int*) = ints.foreach(println(_))
如何轉換數組[INT]或序列[INT]爲Int *?
這就是_*
類型歸屬是什麼:
def test(ints: Int*) { ints foreach println }
val l = List(1, 2, 3)
test(l:_*)
// 1
// 2
// 3
謝謝。沒關係。 – liutao
究竟是什麼':_ *'東西,無論如何?這是演員嗎?它是否在列表中調用某種方法?它是否適用於擴展某些特性的任何類型? – fredoverflow
@FredOverflow:它是「僅」一些語法糖,告訴編譯器你想傳遞一個集合的成員而不是集合本身。 – sschaef
注:這不是一個功能。這是一種方法。這兩者根本不同。 –
第二個注意:由於'test'是一個副作用方法,因此它會更習慣地被聲明爲'def test(...){...}',即沒有'='等號。而且,循環語句可能會更習慣性地寫爲「ints foreach println」,即隱式η轉換而不是顯式。 –