1
3
我还没想清楚,但它会检查:
共变型版本可以更好:
|
2
5
编辑:我刚刚意识到雷克斯在他的例子中有一个具体的阶级小说,而不是我在下面使用的特质。因此,trait实现有点过于简单,无法解决Rex的问题。使用一个具体的类(见下文)也可以做到这一点,但我唯一能做到这一点的方法是通过一些强制转换,这使得这不是真正的“编译时类型安全”。因此,这不符合解决方案的条件。 也许不是最漂亮的,但是使用抽象成员类型的简单示例可以实现如下:
还有一个编辑:也可以使用具体的类来完成类似的操作,但这也不足以保证类型安全:
代码将与trait示例中的一样工作。但它也面临着雷克斯在编辑中提到的同样的问题。要使此编译,不需要重写ShortStory。但是,如果不这样做并在一个简短的实例上调用reverse方法,它将在运行时失败。 |
3
2
在讨论了Scala邮件列表之后——非常感谢那里的人让我走上正轨--我认为这是最接近于一个最小的框架。我把它放在这里作为参考,我使用了一个不同的例子,因为它突出了正在发生的更好的事情:
这里的关键是
现在,当您想创建一个实际使用的类时,您只需在构造函数方法中填充对new的调用(并告诉类它是自己的类型):
然后你就跑了:
这种策略对于数据中的协方差非常有效
|
davidzxc574 · 将字符串缩放为字符 2 年前 |
yic_l · 什么是“!”在这个函数中是什么意思? 2 年前 |
Jelly · Scala:用于理解递归未来 2 年前 |
bbgghh · 在scala中连接两个列表时如何处理不匹配的键 2 年前 |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 2 年前 |
B. Bal · 在Scala中重用类成员 2 年前 |