Wie funktionieren F#-Maßeinheiten?
-
09-06-2019 - |
Frage
Hat jemand Gelegenheit gehabt, herauszufinden, wie das geht? F#-Maßeinheiten arbeiten?Handelt es sich nur um typbasierte Schikanen, oder verbergen sich darunter CLR-Typen, die (potenziell) aus anderen .net-Sprachen verwendet werden könnten?Funktioniert es für jede numerische Einheit oder ist es auf Gleitkommawerte beschränkt (was in allen Beispielen verwendet wird)?
Lösung
Laut a Antwort Im nächsten zugehörigen Blogbeitrag handelt es sich um einen rein statischen Mechanismus im F#-Compiler.Daher gibt es keine CLR-Darstellung der Einheitendaten.
Es ist nicht ganz klar, ob es derzeit mit Nicht-Float-Typen funktioniert, aber aus Sicht des Typsystems ist es theoretisch möglich.
Andere Tipps
Der beste (und meiner Meinung nach offizielle) Ort, um sich darüber zu informieren, ist Andrew Kennedys Blog.
Hier sind die (aktuellen) relevanten Beiträge.
- Maßeinheiten in F#:Teil eins: Einführung in die Einheiten
- Maßeinheiten in F#:Teil Zwei, Einheitenumrechnungen
- Maßeinheiten in F#:Teil drei, Allgemeine Einheiten
- Maßeinheiten in F#:Teil vier: Parametrisierte Typen
Wie ich in dem Beitrag, auf den sich Ihr Antwortgeber bezog, gesagt habe, ist dies definitiv etwas, was Sie in C# NICHT tun KÖNNEN (obwohl ich wünschte, Sie könnten es tun).