優先度5の演算子
加算演算子
オペランドを加算するための演算子です。
結果のクラスはオペランドの中で最も広い範囲を持つクラスになります。real > long > int。
real r0 = 123.5 + 10.0; // Left is real, right is real, result is real.
real r1 = 123.5 + 10; // Left is real, right is int, result is real.
real r2 = 123.5 + 10L; // Left is real, right is long, result is real.
long l0 = 123L + 10L; // Left is long, right is long, result is long.
long l1 = 123L + 10; // Left is long, right is int, result is long.
int i0 = 123 + 10; // Left is int, right is int, result is int.
結果がクラスの値の範囲を越えた場合は例外がスローされます。
オペランドがproxyクラスを返す場合は、proxyクラスの実体が自動的に使用されます。proxyクラスのEntityゲッターを呼び出したのと同じ結果になります。
int i = 10;
real r = 10.5;
proxy pro = new proxy(i);
proxy pro2 = new proxy(r);
real r2 = pro2 + pro; // r2 is 20.5.
連結演算子
両オペランドがstringクラスの場合は、連結演算子です。
連結演算子は左右のオペランドを連結した新しい文字列を返します。
string s = "Hellow " + "world!"; // The result is "Hellow world!".
オペランドがproxyクラスを返す場合は、proxyクラスの実体が自動的に使用されます。proxyクラスのEntityゲッターを呼び出したのと同じ結果になります。
string s = "A";
string s2 = "a";
proxy pro = new proxy(s);
proxy pro2 = new proxy(s2);
string s3 = pro2 + pro; // s3 is "aA".
減算演算子
オペランドを減算するための演算子です。
結果のクラスはオペランドの中で最も広い範囲を持つクラスになります。real > long > int。
real r0 = 123.5 - 10.0; // Left is real, right is real, result is real.
real r1 = 123.5 - 10; // Left is real, right is int, result is real.
real r2 = 123.5 - 10L; // Left is real, right is long, result is real.
long l0 = 123L - 10L; // Left is long, right is long, result is long.
long l1 = 123L - 10; // Left is long, right is int, result is long.
int i0 = 123 - 10; // Left is int, right is int, result is int.
結果がクラスの値の範囲を越えた場合は例外がスローされます。
オペランドがproxyクラスを返す場合は、proxyクラスの実体が自動的に使用されます。proxyクラスのEntityゲッターを呼び出したのと同じ結果になります。
int i = 10;
real r = 10.5;
proxy pro = new proxy(i);
proxy pro2 = new proxy(r);
real r2 = pro2 - pro; // r2 is 0.5.