How do F# units of measure work?

隐身守侯 提交于 2019-11-27 13:13:26

问题


Has anyone had a chance to dig into how F# Units of Measure work? Is it just type-based chicanery, or are there CLR types hiding underneath that could (potentially) be used from other .net languages? Will it work for any numerical unit, or is it limited to floating point values (which is what all the examples use)?


回答1:


According to a response on the next related blog post, they are a purely static mechanism in the F# compiler. So there is no CLR representation of the units data.

Its not entirely clear whether it currently works with non-float types, but from the perspective of the type system it is theoretically possible.




回答2:


The best (and I think official) place to find out about this is on Andrew Kennedy's blog.

Here are the (current) relevant posts.

  • Units of Measure in F#: Part One, Introducing Units
  • Units of Measure in F#: Part Two, Unit Conversions
  • Units of Measure in F#: Part Three, Generic Units
  • Units of Measure in F#: Part Four, Parameterized Types

As I said in the post that your answerer referred to, this is most definitely something that you CAN'T do in C# (though I wish you could).



来源:https://stackoverflow.com/questions/40845/how-do-f-units-of-measure-work

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!