2012-09-19 77 views
0

我有一些問題。我需要在Map中存儲一個函數,但是這個函數必須有不同類型的參數。即:斯卡拉和Polytypic容器

Map(1 -> Int => String, 2 -> String => SomeClass) and so on. 

因此,Function1的類型參數不應該是Any類型。 我該怎麼辦?有任何想法嗎。 謝謝。

+0

也許你可以說爲什麼它不應該任何這樣我們可以闡述?我可以提出的最好的想法是將它存儲在HList –

+0

因爲,你如何猜測我需要從集合中獲取函數並將該函數應用於參數。我認爲這是個好主意。在這種情況下,列表將存儲元組字符串和函數。 – dvigal

回答

1

scala Map接口只有兩個類型參數,所以你不能真正做你想要的scala類型系統和標準地圖。

由於該類型系統是圖靈完備可以或許做你想做的,可能通過使用類似的方法作爲HList http://jnordenberg.blogspot.de/2008/08/hlist-in-scala.html

如果您提供您嘗試通過這個奇怪的,我們可能會映射到解決什麼實際問題爲您解決問題。也許一個類型構造函數需要一個類型並創建另外兩個類型的Function1,但這是推測,直到你陳述你真正需要解決的問題。