前缀减量与减法

Prefix Decrement vs Subtract

public static float ExpoInOut(float from, float to, float time)
{
    if ((time /= .5f) < 1f)
        return Mathf.Lerp(from, to, .5f * Mathf.Pow(2f, 10f * (time - 1f)));
    return Mathf.Lerp(from, to, .5f * (-Mathf.Pow(2f, -10f * --time) + 2f));
}

这两种情况的第一步都是从时间中减去 1。

第二个把那个值存回时间里,既然不再用也没关系? 第一个可以使用 --time 或者第二个可以使用 (time - 1f) 结果是一样的?

如果不保存,第一种方法可能会更好。

谢谢。

编辑:来源:http://robertpenner.com/easing/

--time 而不是 time-- 上使用得很好。你是对的 --time vs time - 1f 并不重要(从代码的角度来看)如果你不保存 time 的新值但从可读性的角度来看你应该去更详细的一个。话虽如此,您应该始终努力提高可读性(尤其是在性能影响为 0 或可忽略不计的情况下)。您可能会发现 readable/supportable 做一些类似

的事情
public static float ExpoInOut(float from, float to, float time)
{
    time /= 0.5f;
    time--; 
    if (time < 0f) 
        return Mathf.Lerp(from, to, .5f * Mathf.Pow(2f, 10f * time)); 
    return Mathf.Lerp(from, to, .5f * (-Mathf.Pow(2f, -10f * time) + 2f));
}

我的一般经验法则是,如果您在另一个方法的参数传递部分中执行 math/functions,您应该尽可能地减少它,即使这意味着将它分解成更小的私有方法。