2
我有一個方法,名爲RateOfChange
,它採用兩個相隔一秒的值並返回結果。度量單位 - 重複使用不同單位的方法
對於兩個位置,它返回速度,對於兩個速度,它返回加速,它返回焦耳兩個能量值/秒等
這在物理上是可能的,但測量單位不要讓我做 - 在第一次使用該方法contrained到指定類型:
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>)
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)
令人驚歎,非常感謝您的答覆;-) – 2010-11-21 11:45:14