Como funcionam as unidades de medida F#?
-
09-06-2019 - |
Pergunta
Alguém já teve a chance de descobrir como Unidades de medida F# trabalhar?É apenas uma trapaça baseada em tipo ou existem tipos CLR escondidos que poderiam (potencialmente) ser usados em outras linguagens .net?Funcionará para qualquer unidade numérica ou está limitado a valores de ponto flutuante (que é o que todos os exemplos usam)?
Solução
De acordo com um resposta na próxima postagem do blog relacionada, eles são um mecanismo puramente estático no compilador F#.Portanto, não há representação CLR dos dados das unidades.
Não está totalmente claro se atualmente funciona com tipos não flutuantes, mas da perspectiva do sistema de tipos é teoricamente possível.
Outras dicas
O melhor (e acho que oficial) lugar para descobrir isso é no blog de Andrew Kennedy.
Aqui estão as postagens relevantes (atuais).
- Unidades de medida em F#:Parte Um, Apresentando Unidades
- Unidades de medida em F#:Parte Dois, Conversões de Unidades
- Unidades de medida em F#:Parte Três, Unidades Genéricas
- Unidades de medida em F#:Parte Quatro, Tipos parametrizados
Como eu disse no post ao qual seu respondente se referiu, isso é definitivamente algo que você NÃO PODE fazer em C# (embora eu desejasse que você pudesse).