複合代入文
書式
複合代入文は以下の形式です。
左辺値 *= 式 ;
左辺値 /= 式 ;
左辺値 %= 式 ;
左辺値 += 式 ;
左辺値 -= 式 ;
それぞれが以下の代入文と等価です。
左辺値 = 左辺 * 右辺 ;
左辺値 = 左辺 / 右辺 ;
左辺値 = 左辺 % 右辺 ;
左辺値 = 左辺 + 右辺 ;
左辺値 = 左辺 - 右辺 ;
左辺値は代入記号の左辺に置くことができるものです。Rice では変数、フィールド、セッタで終わる式、インデクサー演算子で終わる式です。
代入記号の左辺と右辺の式が返すインスタンスに算術演算を実施してその結果で左辺値を変更します。
左辺値が変数、フィールドで終わる場合は、左辺値が参照するアドレスを変更します。
左辺値がセッタで終わる式の場合は、セッタ呼び出しに変換されます。
左辺値がインデクサー演算子で終わる式の場合は、該当する list クラスのアイテムを変更します。
左辺値
左辺値は代入記号の左辺に置くことができるものです。Rice では、変数、フィールド、セッタで終わる式、インデクサー演算子で終わる式です。
複合代入文の左辺値は代入の前に算術演算のために式として評価されてインスタンスを返します。返されるインスタンスは、int、long、realクラスでなければなりません。
代入記号
複合代入文の代入記号:
*=
/=
%=
+=
-=
それぞれが算術演算子と対応しています。算術演算の規則は対応する演算子と同じです。
代入の規則は代入文と同じです。
式
式は算術演算のためのインスタンスを返します。返されるインスタンスは、int、long、realクラスでなければなりません。
セミコロン
複合代入文の終了はセミコロンで表します。
例
1: | class example |
2: | int var1; |
3: | open method void someMethod() |
4: | var1 = 10; |
5: | var1 += 10; // var1 is 20. |
6: | em |
7: | ec |