关于.net:F#计量单位如何运作?

关于.net:F#计量单位如何运作?

How do F# units of measure work?

是否有人有机会深入研究F计量单位的工作原理?它仅仅是基于类型的欺诈,还是隐藏在下面的clr类型(可能)可以被其他.NET语言使用?它是否适用于任何数值单位,或仅限于浮点值(所有示例都使用这一点)?


最好(而且我认为是正式的)了解这个的地方是在安德鲁·肯尼迪的博客上。

以下是(当前)相关职位。

  • 测量单位:第一部分,介绍单位
  • 用F表示的计量单位:第二部分,单位换算
  • 用f表示的度量单位:第三部分,通用单位
  • 用f表示的度量单位:第四部分,参数化类型

正如我在你的回答者提到的帖子中所说的,这绝对是你在C中不能做的事情(尽管我希望你能做到)。


根据下一篇相关博客文章的回复,它们是f编译器中的纯静态机制。所以没有单位数据的clr表示。

目前还不清楚它是否适用于非浮点类型,但从类型系统的角度来看,理论上是可能的。


推荐阅读