假設我有一個元組我們可以動態地爲元組創建一個類型別名嗎?
val myTuple: (String,Int,String,...,Boolean) = ("",0,"",..,true)
我可以寫一個類型別名
type MyType = (String,Int,String,...,Boolean)
val myTuple: MyType = ("",0,"",..,true)
我可以動態寫這種類型的別名?有沒有一種方法在這種類型別名中不明確,並讓編譯器找到與別名關聯的類型?
對於爲例類似
case class MyCaseClass(x: String,y: Int,z:String,...,zz:Boolean)
type MyDynamicTupleType = MyCaseClass.tupled.parameter1.type
不知道這是可能的,或者這是非常有用的,只是找出很長的元組寫別名是很無聊的,是剛剛樣板(exemple here)。
開放的宏觀基礎或無形的解決方案
我不完全確定你在問什麼。但是你可能會發現無形對此有用。看到https://github.com/milessabin/shapeless/wiki/Feature-overview:-shapeless-2.0.0#generic-representation-of-sealed-families-of-case-classes – acjay 2015-02-09 11:39:44
是的,它似乎是這樣的。打開一個無形的例子實現這一點:) – 2015-02-09 13:38:53
我不認爲你可以在運行時(無形狀)。但你仍然可以嘗試用Scala Macros來做這件事。 – 2015-02-09 14:21:17