Comment fonctionnent les unités de mesure F# ?
-
09-06-2019 - |
Question
Quelqu'un a-t-il eu l'occasion de comprendre comment Unités de mesure F# travail?S'agit-il simplement d'une chicane basée sur le type, ou y a-t-il des types CLR cachés en dessous qui pourraient (potentiellement) être utilisés à partir d'autres langages .net ?Cela fonctionnera-t-il pour n'importe quelle unité numérique, ou est-il limité aux valeurs à virgule flottante (c'est ce que tous les exemples utilisent) ?
La solution
Selon un réponse dans le prochain article de blog connexe, il s'agit d'un mécanisme purement statique dans le compilateur F#.Il n'y a donc pas de représentation CLR des données des unités.
Il n'est pas tout à fait clair si cela fonctionne actuellement avec des types non flottants, mais du point de vue du système de types, c'est théoriquement possible.
Autres conseils
Le meilleur endroit (et je pense officiel) pour en savoir plus est sur le blog d'Andrew Kennedy.
Voici les articles pertinents (actuels).
- Unités de mesure en F# :Première partie, Présentation des unités
- Unités de mesure en F# :Deuxième partie, conversions d'unités
- Unités de mesure en F# :Troisième partie, unités génériques
- Unités de mesure en F# :Quatrième partie, types paramétrés
Comme je l'ai dit dans le message auquel votre répondeur a fait référence, c'est certainement quelque chose que vous NE POUVEZ PAS faire en C# (même si j'aimerais que vous puissiez le faire).