gpt4 book ai didi

f# - F# 度量的重载

转载 作者:行者123 更新时间:2023-12-04 23:48:32 25 4
gpt4 key购买 nike

考虑以下 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 的度量是相同的。

有什么建议和想法吗?

最佳答案

let scaleCalculation (finalSize:float<'u>) (originalSize:float<'u>) =
finalSize/originalSize * 100.0<percentage>

Units of Measure in F#: Part Four, Parameterized Types

关于f# - F# 度量的重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com