2016-08-13 95 views
3

在scala中,我們可以讓類型成員聲明type T。我們可以傳遞類型作爲方法參數嗎?我試過這個:我們可以將類型作爲參數傳遞給方法嗎?

def test(type T) 
def test(T: type) 

但他們都沒有編譯。那麼,有可能嗎?

+0

'def test [T]()'有什麼問題嗎? –

+0

@ n.m。但我們實際上有一個沒有參數和一個泛型類型參數的方法... – stella

+0

注意它們被稱爲「類型參數」。如果您正在尋找某種類型的值表示,那麼您正在討論運行時反射,例如, 'def f [A](a:A)(隱式標籤:scala.reflect.runtime.universe#TypeTag [A]):A'。 –

回答

3

不,不可能將類型作爲值傳遞給標準Scala中的函數。

此外,還有幾件事情錯了你的推薦碼:

  • 首先你不能定義與type關鍵字函數參數。這用於聲明類型同義詞而不是函數參數的類型。

  • 您甚至不能將類型作爲值傳遞給Scala中的函數。在這裏,你正在一個程序中混合一種類型的數據,另一種是你的程序中的數值。 Scala函數接受值作爲函數的參數(如果該函數被定義爲接受參數)而不是類型。

相關問題