如何使用 F# 中的度量单位打印结果单位?
Posted
技术标签:
【中文标题】如何使用 F# 中的度量单位打印结果单位?【英文标题】:How do you print the resulting units using units of measure in F#? 【发布时间】:2010-12-05 16:19:45 【问题描述】:我开始学习如何在 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
我想做这样的事情:
printfn "Results: %A %A" (d / t) (UOM (d / t));;
"Results: 5 m/s"
提前致谢
【问题讨论】:
【参考方案1】:很遗憾,这是不可能的。
度量单位仅在编译时存在。当您编译程序时,它们将被擦除(因为 .NET 没有任何方式来表示类型的单位)。这意味着在运行时,您的计算结果将只是float
。我认为除了在代码中将单位写为字符串之外没有其他方法......
前段时间有一个相关的问题。它包含更多详细信息,还解释了为什么您无法使用反射获取有关单位的信息。
Why can not use reflection in f#【讨论】:
以上是关于如何使用 F# 中的度量单位打印结果单位?的主要内容,如果未能解决你的问题,请参考以下文章