簡體   English   中英

在這種情況下,“ =”運算符是做什么的? sqrtf(1-(t = t / d-1)* t);

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM