【问题标题】:How do you print the resulting units using units of measure in F#?如何使用 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"

提前致谢

【问题讨论】:

    标签: f# units-of-measurement


    【解决方案1】:

    很遗憾,这是不可能的。

    度量单位仅在编译时存在。当您编译程序时,它们将被擦除(因为 .NET 没有任何方式来表示类型的单位)。这意味着在运行时,您的计算结果将只是float。我认为除了在代码中将单位写为字符串之外没有其他方法......

    前段时间有一个相关的问题。它包含更多详细信息,还解释了为什么您无法使用反射获取有关单位的信息。

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 2010-10-02
      • 2010-09-29
      • 2011-02-09
      • 2019-11-12
      • 2016-05-17
      • 2010-10-04
      • 2016-04-06
      • 2010-09-07
      相关资源
      最近更新 更多