【问题标题】:Scala Numeric-Like for custom Classes用于自定义类的 Scala Numeric-Like
【发布时间】:2014-08-28 22:58:59
【问题描述】:

我在 Scala 2.10.2 中创建了一些值类来表示电力单位,例如电压、电流、功率、能量等。它们只允许以特定合理的方式组合,例如您可以将电压乘以电流,但不能将电压乘以能量。

一个常见的用例是计算一系列能量的总能量。为此,我想使用

val energies : Seq[Energy] = ...
energies.sum()

但这给了我以下错误:

error: could not find implicit value for parameter num: Numeric[Energy]

这很有意义。

我可以实现 Numeric[Energy],但这需要我定义 times( Energy, Energy ),我不想这样做,因为它不是有效类型。有没有人对如何实现这一点提出建议?

【问题讨论】:

标签: scala sum


【解决方案1】:

Sum 需要Numeric[T],您不能允许Numeric[Energy],因此您不能使用sum。也许您可以为您经常想要对您的类型集合执行的操作引入自己的一组辅助函数?

我来看看 squants,看看他们是否/如何解决了这个问题。 (http://www.squants.com)

【讨论】:

猜你喜欢
  • 2014-10-12
  • 2021-06-22
  • 2011-01-17
  • 2011-01-17
  • 1970-01-01
  • 2015-08-27
  • 2014-05-23
  • 2015-11-28
  • 1970-01-01
相关资源
最近更新 更多