式と演算子

オブジェクトはデータを管理する事ができますが、データの値として計算式を用いる事ができます。

計算式を用いた場合、計算結果がオブジェクトの値となります。

計算式はクライアント内で完結して動作するため、ネットワーク通信などのオーバヘッドを必要とせず高速に動作します。


ユーザの対話的な操作で良好なレスポンスを必要とする場合、サーバに対して処理のリクエストを行う方法を用いますと十分な応答性が得られない事が多いですが、そのような場面でもできるだけクライアント内で完結するように、イベントハンドラやここで説明する計算式を用いる事ができないか検討すると良いでしょう。

特にサーバ側の資源(データベースなど)を必要としない簡易な値の導出には、式を用いる事により迅速な応答性が得られ、サーバやネットワークに対する負荷も発生しません。


次の例では、ユーザが入力する数量と単価より、式を使用して金額と消費税を表示しています。

URIAGE.KINGAKU &= URIAGE.SURYO * URIAGE.TANKA;

URIAGE.ZEI &= URIAGE.KINGAKU * 0.05;

URIAGE.TOTAL &= URIAGE.KINGAKU + URIAGE.ZEI;

*: 掛算をする演算子

+: 足算をする演算子

&=: 参照を示す演算子

上記の例をDisplayObjectに関連させるとSURYOまたはTANKAを画面から入力する事によりKINGAKU,ZEI,TOTALが計算され、画面上に計算結果が表示される事になります。

この動作によりデータ通信が発生する事はなく、良好な応答性が得られます。

../_images/core06_image001.png

他に、以下の演算子を利用することができます。


優先度

種類

記号

結合順

1(最高)

スコープ演算子

::

左→右

2

メンバ参照演算子

.(ドット)

添字演算子

[ ]

括弧演算子

( )

後置増分/減分演算子

++ --

3

new演算子

new

右→左

単項演算子

+ - !

前置増分/減分演算子

++ --

4

算術演算子:乗除

* / %

左→右

5

算術演算子:加減

+ -

6

ストリーム演算子

<< >>

7

関係演算子

> >= < <= instanceof

8

等価演算子

== != ==& !=&

9

論理結合演算子

& |

論理結合演算子(短絡評価版)

&& ||

10

null結合演算子

??

右→左

11

3項演算子

? :

12(最低)

複合代入演算子

+= -= *= /= %=

代入演算子

= &=