Я пытаюсь написать конвертер «единиц измерения» в F #.
Я определил две единицы измерения, KWh
и MWh
, и я пытаюсь написать функцию для преобразования между ними, которая будет соответствовать шаблону числового типа. У меня может быть число с плавающей запятой, десятичное число, целое число кВтч для преобразования в МВтч.
[<Measure>]
type KWh
[<Measure>]
type MWh
// want to do this, but can't because x is not x:obj,
// its something like x:float<KWh>
let toMWh x =
match x with
| :? float<KWh> -> x * (1.0<MWh>/1000.0<KWh>)
| :? int<KWh> -> // ...
// above code not valid f#
Я не могу понять, как правильно переходить по типу, когда у меня нет типа obj.