У кого-нибудь есть шанс вникать в то, как работают F # Units of Measure? Является ли это просто тиканием на основе типа или существуют скрытые типы CLR, которые могут (потенциально) использоваться с других языков .net? Будет ли она работать для любой числовой единицы или ограничена значениями с плавающей запятой (что все примеры используют)?
Как работают единицы измерения F #?
Ответ 1
В соответствии с ответом на следующем связанном блоге, они являются чисто статическим механизмом в компиляторе F #. Таким образом, нет данных CLR данных единиц.
Не совсем ясно, работает ли он в настоящее время с неплавкими типами, но с точки зрения системы типов это теоретически возможно.
Ответ 2
Лучшее (и, я думаю, официальное) место, чтобы узнать об этом, это блог Эндрю Кеннеди.
Вот (актуальные) соответствующие сообщения.
- Единицы измерения в F #: часть первая, введение единиц
- Единицы измерения в F #: Часть вторая, Конверсии единиц
- Единицы измерения в F #: Часть третья, общие единицы
- Единицы измерения в F #: часть четвертая, параметризованные типы
Как я уже сказал в сообщении, о котором говорил ваш ответчик, это определенно то, что вы НЕ МОЖЕТЕ делать на С# (хотя я бы хотел, чтобы вы могли).