0

以下代码是缓动方程的一部分。我只是对语法感兴趣。

sqrtf(1 - (t = t / d - 1) * t);

我以前从未见过像这样使用'=' 运算符。在这种情况下它做了什么?

编辑:代码来自著名的 Robert Penner 缓动函数,用 ActionScript 编写:

static function easeOut (t:Number, b:Number, c:Number, d:Number):Number {
    return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
}
4

1 回答 1

4

这里的=操作员做它一直做的事情。在这种情况下,它会修改t(将其设置为t / d - 1)。从等式的该部分返回的值将是 的新值t

这变得令人困惑,因为t稍后会在等式中使用,而且我不确定每个编译器都会以相同的方式对待它。第三个t将使用旧值还是新值?

我会避免以这种方式编写方程式。它很懒惰,我看不出有什么好的理由这样做。

于 2012-12-19T00:57:28.393 回答