gpt4 book ai didi

scala - 在 Scala 中用单位漂亮地表示数量

转载 作者:行者123 更新时间:2023-12-05 00:43:38 24 4
gpt4 key购买 nike

我需要对单位数量的支持。我希望类型系统尽可能地强制执行单位正确性。例如,应该不可能将克与美元结合起来。我将沿着参数化类型的道路走下去,但是这段代码似乎比我从其他人那里看到的 Scala 代码重复得多。

abstract class UnitOfMeasure

abstract class Range[T] {
type T <: UnitOfMeasure
}
class Quantity[T <: UnitOfMeasure](value: Double)
class DefiniteRange[T<:UnitOfMeasure](lowerBound: Quantity[T], upperBound: Quantity[T]) extends Range[T]
class Confidence(conf: Double) {
require(0.0 <= conf && conf <= 1.0)
}
class ConfidenceInterval[T<:UnitOfMeasure](lowerBound: Quantity[T], upperBound: Quantity[T], confidence: Confidence) extends Range[T] {
def this(lower: Quantity[T], upper: Quantity[T]) = this(lower, upper, new Confidence(.90))
}

有没有更干净的方法来做到这一点? "T<:UnitOfMeasure"的鼓点是困扰我的主要事情。

最佳答案

我没有这本书,但也许是 self type是你所需要的。您可以将您的类包含在另一个类中,并添加要在类范围中使用的类型定义。

关于scala - 在 Scala 中用单位漂亮地表示数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/823848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com