【发布时间】:2012-02-12 07:01:01
【问题描述】:
我可以在 Scala 中使用哪些技术来处理长类型参数列表?
我正在开发一个小框架,用于在不同的模拟环境中运行各种类型的游戏。我试图保持框架的某些部分相对通用,所以我引入了各种类型作为类型参数,例如环境状态、游戏结果等。
这一切在功能上都运行良好,并且我确实获得了类型安全但通用框架的预期好处。但是类型签名已经发展到使代码难以阅读并且重构它变得非常麻烦的地步。顶级 Simulator 的签名有 8 个类型参数,许多主要类型有 3 到 5 个。个别编译器类型错误,因为它们列出了类或函数参数的类型(当然也是类型参数化的)似乎经常运行到一百行。
偶尔,但很少,我可以省略类型参数,例如关于构造函数。但在大多数情况下,不会推断出至少一种类型,因此我最终不得不插入整个类型签名。
显然这并不理想,我正在寻找解决此问题的方法。任何建议将不胜感激!
【问题讨论】:
-
几行示例代码总是值得赞赏的 ;)
-
这是一个非常普遍的问题。我不确定示例代码会增加很多价值。这只是通常的东西:特征、类、函数,每个都有类型参数,字段/成员也有类型参数。
标签: generics scala polymorphism