Come funzionano le unità di misura F#?
-
09-06-2019 - |
Domanda
Qualcuno ha avuto la possibilità di approfondire come F# Unità di misura lavoro?Si tratta solo di imbrogli basati sui tipi o ci sono tipi CLR nascosti sotto che potrebbero (potenzialmente) essere utilizzati da altri linguaggi .net?Funzionerà con qualsiasi unità numerica o è limitato a valori in virgola mobile (che è ciò che usano tutti gli esempi)?
Soluzione
Secondo a risposta nel successivo post di blog correlato si tratta di un meccanismo puramente statico nel compilatore F#.Pertanto non esiste una rappresentazione CLR dei dati delle unità.
Non è del tutto chiaro se attualmente funzioni con tipi non float, ma dal punto di vista del sistema di tipi è teoricamente possibile.
Altri suggerimenti
Il posto migliore (e credo ufficiale) per scoprirlo è il blog di Andrew Kennedy.
Ecco i post rilevanti (attuali).
- Unità di misura in Fa#:Prima parte, Introduzione alle unità
- Unità di misura in Fa#:Parte seconda, conversioni di unità
- Unità di misura in Fa#:Parte terza, Unità generiche
- Unità di misura in Fa#:Parte quarta, Tipi parametrizzati
Come ho detto nel post a cui si riferiva il tuo rispondente, questo è sicuramente qualcosa che NON PUOI fare in C# (anche se vorrei che potessi).