Scala和Polytypic容器

时间:2012-09-19 18:17:15

标签: scala collections type-systems

我有些问题。我需要将一个函数存储到Map中,但是这个函数必须具有不同类型的参数。即:

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

所以,但是Function1的类型参数不应该是Any类型。 我该怎么做?有任何想法吗。 感谢。

1 个答案:

答案 0 :(得分:1)

scala Map接口只有两个类型参数,因此您无法使用scala类型系统和标准映射实际执行所需的操作。

由于类型系统是图灵完成的,你可能可以按照HList http://jnordenberg.blogspot.de/2008/08/hlist-in-scala.html

中的类似方法做你想做的事情。

如果您提供了您尝试通过这个奇怪的地图解决的实际问题,我们可能会为您解决问题。也许一个类型构造函数采用一种类型并创建另外两种类型的Function1,但这是猜测直到你陈述你要解决的真正问题。