Jer*_*y E 4 f# units-of-measurement
我开始学习如何在F#中使用度量单位,但我还没有找到这个简单问题的答案.如何在计算后打印结果单位.我知道FSI打印它们所以它们应该以某种方式可用.
例如:
[<Measure>] type m;;
[<Measure>] type s;;
let d = 10<m>;;
val d : int<m> = 10
let t = 2<s>;;
val t : int<s> = 2
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
printfn "Results: %A %A" (d / t) (UOM (d / t));;
"Results: 5 m/s"
Run Code Online (Sandbox Code Playgroud)
提前致谢
不幸的是,这是不可能的.
度量单位仅在编译时存在.编译程序时,它们将被编写(因为.NET没有任何方法来表示类型的单位).这意味着在运行时,计算结果将是正确的float.我认为除了在代码中将单位写为字符串之外没有任何其他方法...
前段时间有一个相关的问题.它有一些更多的细节,也解释了为什么你不能使用反射获取有关单位的信息.