测量值由(通常为非负)浮点数和度量单位组成.重点是表示现实世界的数量,以及管理它们的规则.这是一个例子:
scala> val oneinch = Measure(1.0, INCH)
oneinch : Measure[INCH] = Measure(1.0)
scala> val twoinch = Measure(2.0, INCH)
twoinch : Measure[INCH] = Measure(2.0)
scala> val onecm = Measure(1.0, CM)
onecm : Measure[CM] = Measure(1.0)
scala> oneinch + twoinch
res1: Measure[INCH] = Measure(3.0)
scala> oneinch + onecm
res2: Measure[INCH] = Measure(1.787401575)
scala> onecm * onecm
res3: Measure[CMSQ] = Measure(1.0)
scala> onecm * oneinch
res4: Measure[CMSQ] = Measure(2.54)
scala> oncem * Measure(1.0, LITER)
console>:7: error: conformance mismatch
scala> oneinch * 2 == twoinch
res5: Boolean = true
在你太兴奋之前,我还没有实现这一点,我只是打扰了一个REPL会话.我甚至不确定语法,我只是想能够处理诸如添加测量数量(即使是混合单位),乘以测量数量等等,理想情况下,我喜欢Scala自夸式类型系统来保证在编译时,表达式是有意义的.
我的问题:
由于承包商正在使用码数和磅数而美国宇航局正在使用米和牛顿,因此损失了价值3.3亿美元的火星探测器.测量库可以防止崩溃.
| 归档时间: | 
 | 
| 查看次数: | 1322 次 | 
| 最近记录: |