Как работают единицы измерения F #?
-
09-06-2019 - |
Вопрос
У кого-нибудь была возможность разобраться в том, как F# Единицы измерения работать?Это просто придирки на основе типов, или под ними скрываются типы CLR, которые могут (потенциально) использоваться с других языков .net?Будет ли это работать для любой числовой единицы или ограничено значениями с плавающей запятой (что используется во всех примерах)?
Решение
Согласно response в следующем связанном сообщении в блоге, они являются чисто статическим механизмом в компиляторе F #. Таким образом, нет представления CLR данных единиц измерения.
Не совсем ясно, работает ли он в настоящее время с не плавающими типами, но с точки зрения системы типов это теоретически возможно. Р>
Другие советы
Лучшее (и, я думаю, официальное) место, где можно узнать об этом, - в блоге Эндрю Кеннеди.
Вот (текущие) соответствующие сообщения.
- Единицы измерения в F#:Часть Первая, Знакомящая с единицами измерения
- Единицы измерения в F#:Часть вторая, Преобразование единиц измерения
- Единицы измерения в F#:Часть Третья, Общие единицы измерения
- Единицы измерения в F#:Часть четвертая, Параметризованные типы
Как я уже сказал в сообщении, на которое ссылался ваш ответчик, это определенно то, чего вы НЕ МОЖЕТЕ сделать на C # (хотя я бы хотел, чтобы вы могли).