【问题标题】:Scala multiple with斯卡拉多与
【发布时间】:2011-12-29 17:07:18
【问题描述】:

Scala 新手。语言相当简洁。

很好奇为什么实现多个特征需要多个“with”语句。

例如:

class Foo extends Bar with A with B with C {}

对比

class Foo extends Bar with A, B, C {}

【问题讨论】:

  • 如果你要走那条路,为什么还要有“with”呢?为什么不Class Foo extends Bar, A, B, C
  • 再次,Scala 的新手,但不支持带有“extends”的 afaik 多重继承,而“with”提供了这种功能的一种形式

标签: scala traits


【解决方案1】:

考虑一下

class Foo[A, B]

new Foo[Bar with D with E, Bar with E] {}

new Foo[Bar with D, E, Bar with E] {}

并非在所有情况下都是明确的。

【讨论】:

  • 啊,好的,这澄清了多重的明显非干燥性,谢谢。
  • @virtualeyes 您可以将with 想象成一个(外观不同的)逗号 - 这应该表明没有 DRY 违规。
猜你喜欢
  • 2011-09-16
  • 2011-07-15
  • 2018-12-07
  • 2013-04-13
  • 2016-01-31
  • 2017-10-23
  • 1970-01-01
  • 2017-01-19
  • 2021-06-09
相关资源
最近更新 更多