У кого-нибудь был шанс вникать в то, как F# Units of Measure работает? Является ли это просто тиканием на основе типа или существуют скрытые типы CLR, которые могут (потенциально) использоваться с других языков .net? Будет ли она работать для любой числовой единицы или ограничена значениями с плавающей запятой (что все примеры используют)?Как работают единицы измерения F #?
ответ
В соответствии с response на следующем связанном сообщении в блоге они являются чисто статическим механизмом в компиляторе F #. Таким образом, нет CLR-представления данных единиц.
Не совсем ясно, работает ли он в настоящее время с неплавающими типами, но с точки зрения системы типов это теоретически возможно.
Посмотреть последнее сообщение в блоге Andrew Kennedy (в ответе ниже), UOM доступны для любого числового типа, а также для составных типов. – Benjol 2009-12-08 13:03:52
Лучшее (и я думаю, официальное) место, чтобы узнать об этом на блоге Эндрю Кеннеди.
Вот (текущие) соответствующие посты.
- 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
Как я уже говорил в посте, что ваш отвечающему называют, это определенно то, что вы не можете сделать в C# (хотя я бы хотел, чтобы вы могли).
Посмотрите на калькулятор Frink и язык программирования Frink. – 2010-10-25 08:29:32