複合代入ステートメントには、以下の構文を使用します。
|
区域の割り当てについては、区域データとその属性の項で説明しています。
| 複合代入演算子 | 意味 |
|---|---|
| += | 式の計算、加算および代入 |
| -= | 式の計算、減算および代入 |
| *= | 式の計算、乗算および代入 |
| /= | 式の計算、除算および代入 |
| |= | 式の計算、OR および代入 |
| &= | 式の計算、AND および代入 |
| ||= | 式の計算、連結と代入 |
| **= | 式の計算、指数化および代入 |
| ¬= | 式の計算、排他 OR および代入 |
最初に演算子がターゲットおよびソースに適用され、 次にその結果がターゲットに割り当てられます。
以下に例を示します。
| X += 1 | は次と等しい | X = X+(1) |
| X *= Y+Z | は次と等しい | X = X*(Y+Z) |
ただし、
| X *= Y+Z | は次と等しくない | X = X*Y+Z |
複合割り当てでは、ターゲット変数に指定された任意の添え字またはロケーター式が、 一度だけ計算されます。
f が関数であり、X が配列の場合は、
| X(f()) += 1 | は次と等しくない | X(f()) = X(f())+1 |
関数 f は一度だけ呼び出されます。
以降では、次のトピックについて説明しています。
割り当ての例は、内部データ移動の例から記載されています。