小编Gar*_*ans的帖子

计量单位 - 传入不同单位的重用方法

我有一个名为的方法,RateOfChange它接受两个相隔一秒读取的值,并返回结果.

对于两个位置,它返回速度,对于两个速度,它返回加速度,对于两个能量值,它返回焦耳/秒等.

这在物理上是可行的,但是度量单位不允许我这样做 - 在第一次使用时,该方法与指定类型有关:

let RateOfChangeWithTime (value1, value2) = (value2 - value1) / 1.0<SI.s>

let velocity = RateOfChangeWithTime(2.0<SI.m>, 1.0<SI.m>)
let acceleration = RateOfChangeWithTime(3.0<SI.m/SI.s>, 2.0<SI.m/SI.s>)
Run Code Online (Sandbox Code Playgroud)

该行velocity =导致该方法被约束float<SI.m> -> float<SI.m>/float<SI.s>,当然这对于速度是正确的,但是行acceleration =...然后无法编译,因为它传入float<SI.m/SI.s>的方法不期望.

我希望RateOfChangeWithTime对传入的类型保持不变,但只返回一个除以秒的度量单位.

这似乎更符合真实的现场情况,这可能吗?(我正试图在更复杂的情况下这样做 - 请参阅此处(http://taumuon-jabuka.blogspot.com/2010/11/f-units-of-measure-with-reactive.html)

f# units-of-measurement

2
推荐指数
1
解决办法
185
查看次数

标签 统计

f# ×1

units-of-measurement ×1