热门问题
时间线
聊天
视角

增量賦值

来自维基百科,自由的百科全书

Remove ads

增量賦值(Augmented assignment)或稱複合賦值(compound assignment)是在一些程式語言中的一類賦值運算符。通常用於替代一條語句,其中的運算符把變量作為一個運算數,再把結果賦值給同一變量。例如x += 1可展開為x = x + (1)。常適用於算術運算符、移位運算符位操作運算符等。

語義

面向表達式語言英語expression-oriented programming language如C語言中,增量賦值語句是表達式,因此允許右結合的連續的增量賦值,如下例:

a += b += c

而Python語言的賦值語句和增量賦值語句不是表達式,因此不允許上述用法。

C++語言的增量賦值表達式的值為左值[1]因此允許下述用法:[2]

int x = 11;
(x *= 2) += 3; // Sets x to 25

在C語言、C++、Python中,增量賦值的賦值位置如果包括了函數調用,則強制只調用一次,如下例:

my_array[f1()] += 1

函數f1被強制只調用一次。

如果下例的f1()是宏擴展:

my_array[f1()] = my_array[f1()] + 1

f1被調用兩次。

常見的增量賦值運算符

CC++C#等語言中的「複合賦值運算符」:[1][3][4][5]

更多資訊 運算符, 描述 ...

語言支持

參見

參考文獻

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads