我很想知道 scala 中亚型多态性的完整替代方案。
问问题
825 次
1 回答
23
在 Scala 中实现静态可检查多态性的基本工具是
- 子类型化(沼泽标准 OO 多态性)
- 类型参数化(允许多态方差和约束)
- 自类型(允许 OO 多态性的限制和特化)
- 隐式转换(允许事后多态构造)
- 结构类型(允许基于特征而不是类型的多态性)
- 一般类型边界(允许对允许的多态性进行极其精确的约束)
- 模式匹配(允许基于数据结构的多态性,类似于抽象数据类型)
- 更高种类的类型(允许多态结构上的多态性)
称所有这些“替代品”可能是错误的词,因为它们集成得非常好。通过结合使用这些工具中的几个来表达一些多态算法的情况并不少见。
还值得注意的是在 Scala 多态性中的理解。因为理解似乎不是特别多态的。在表面之下,for-comprehensions 只是调用 filter/map/flatMap 的语法糖,这些方法的实现往往是高度多态的。因此,看起来相对简单的 for 循环可能会产生一些非常令人印象深刻的多态效果。
于 2010-08-29T20:20:46.603 回答