F#中的自动计量单位转换(公里 - >米)

时间:2017-09-22 10:44:16

标签: f# units-of-measurement

能够自动转换度量单位会很棒,这些度量单位只是同一维度的乘数。 (kg - > g,cm - > mm,km - > m)。从我在网上看到的内容:

https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/units-of-measure https://fsharpforfunandprofit.com/posts/units-of-measure/

如果没有辅助功能,我似乎无法工作。从我的角度来看,这些转换污染了计算。我想要这样的东西起作用:

[<Measure>] type m
[<Measure>] type km = 1000 * m

以下也不会有效。

let distance = 1000 * 10**3 <m>

这是否可以通过其他方式实现?

1 个答案:

答案 0 :(得分:1)

我不知道F#,但是,单位是polute计算。这就是为什么你应该只在输入时转换值(例如读取表格文件/ stdin),总是以相同的单位进行计算,公制系统就是这里的。然后,最后,将度量系统的结果转换为您想要的任何单位。

这样,以后可以很容易地添加对新单元的支持