[英]What does the '=' operator do in this context? sqrtf(1 - (t = t / d - 1) * t);
以下代码是缓动方程的一部分。 我只是对语法感兴趣。
sqrtf(1 - (t = t / d - 1) * t);
我以前从未见过像这样使用'='运算符。 在这种情况下,它做什么?
编辑:该代码来自用ActionScript编写的著名的Robert Penner缓动函数:
static function easeOut (t:Number, b:Number, c:Number, d:Number):Number {
return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
}
这里的=
运算符将执行其始终执行的操作。 在这种情况下,它将修改t
(将其设置为t / d - 1
)。 从等式的该部分返回的值将是t
的新值。
这变得令人困惑,因为在等式的后面使用了t
,而且我不确定每个编译器都将t
视为相同。 即第三个t
将使用旧值还是新值?
我将避免以这种方式编写方程式。 这很懒,我看不出有什么充分的理由这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.