考虑以下 F# 代码:
[<Measure>] type pixel
[<Measure>] type inch
[<Measure>] type dot
[<Measure>] type percentage
let scaleCalculation (finalSize:float<pixel>) (originalSize:float<pixel>) =
finalSize/originalSize * 100.0<percentage>
(我意识到我需要检查 originalSize 是否为 0,但这与这个问题并不真正相关)。
我想要的是重载这个函数来处理英寸和每英寸的点数。我认为没有任何方法可以使计量单位超载,但我只是想看看是否有人对此有任何建议。
我知道我可以这样做:
let scaleCalculation (finalSize:float) (originalSize:float) =
finalSize/originalSize * 100.0<percentage>
但后来我失去了对 finalSize 和 originalSize 的测量。我只是想确保 finalSize 和 originalSize 的度量是相同的。
有什么建议,想法吗?