加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Scala中实现Measured值

发布时间:2020-12-16 09:27:47 所属栏目:安全 来源:网络整理
导读:测量值由(通常为非负)浮点数和度量单位组成.关键在于表示现实世界的数量以及管理它们的规则.这是一个例子: scala val oneinch = Measure(1.0,INCH)oneinch : Measure[INCH] = Measure(1.0)scala val twoinch = Measure(2.0,INCH)twoinch : Measure[INCH] =
测量值由(通常为非负)浮点数和度量单位组成.关键在于表示现实世界的数量以及管理它们的规则.这是一个例子:

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自夸式类型系统以保证在编译时,表达式是有意义的.

我的问题:

>这个问题是否有现存的术语?
>这已经在Scala中完成了吗?
>如果没有,我将如何表示“长度”和“以米为单位测量的长度”等概念?
>这是用其他语言完成的吗?

因为承包商正在使用码和磅而美国宇航局正在使用米和牛顿,因此失去了A $330-million Mars probe.测量库可以防止崩溃.

解决方法

嗯,这个功能存在于Java中,这意味着您可以直接在Scala中使用它.

jsr-275,已移至google code. jscience实施规范.这是一个很好的introduction.如果你想要一个更好的界面,我会用它作为基础并围绕它构建一个包装器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读