有没有人有机会深入了解F#计量单位的工作原理?它只是基于类型的chicanery,还是隐藏在其下的CLR类型可能(可能)从其他.net语言中使用?它适用于任何数值单位,还是仅限于浮点值(这是所有示例使用的)?
在安德鲁肯尼迪的博客上,最好的(我认为官方的)地方可以找到这个.
以下是(当前)相关帖子.
F#中的计量单位:第一部分,单位介绍
F#中的度量单位:第二部分,单位转换
F#中的度量单位:第三部分,通用单位
F#中的度量单位:第四部分,参数化类型
正如我在帖子中所说的,你的回答者提到的,这绝对是你在C#中无法做到的事情(尽管我希望你能做到).
根据下一篇相关博客文章的回复,它们是F#编译器中的纯静态机制.因此没有单位数据的CLR表示.
目前还不完全清楚它是否适用于非浮动类型,但从类型系统的角度来看,它在理论上是可行的.