【发布时间】:2015-07-13 23:03:31
【问题描述】:
我为度量单位编写了一个小型库(是的,我可以为此使用 squants,但我需要一些 squants 不提供的功能)。我的单位类是UnitOfMeasure,数量,即数字和单位,是Quantity。
假设我将m 定义为UnitOfMeasure,我想这样写:
val q = 3.0 m
我在包对象中创建了一个类QuantityWrapper,如下所示:
implicit class QuantityWrapper[T](value: T)(implicit num: Numeric[T]) {
def apply(unit: UnitOfMeasure[T]): Quantity[T] =
Quantity(value, unit)
}
所以我现在可以这样做了:
val q = 3.0(m)
因为 3.0 已隐式转换为 QuantityWrapper[Double] 并且 m 已定义为 UnitOfMeasure[Double]。
但我希望能够省略括号。如果不为我拥有的每个单元在 QuantityWrapper 中定义方法,这是否可能?
【问题讨论】: