演算子

提供:AB開発Wiki
ナビゲーションに移動検索に移動

演算子とは与えられたオペランド(式)を対象に評価を行い、結果を返す動作を提供します。また、ものによってはそれ以外の副作用を生じるものがあります。ABでは下記の演算子が利用できます。

代入演算子

左辺の値を右辺で与えられた値にする副作用を持ちます。式の結果の参照は不可能です。

A =    B   '単純代入
A *=   B   '乗算代入
A /=   B   '除算代入
A \=   B   '整数除算代入
A mod= B   '乗除代入
A +=   B   '加算代入
A -=   B   '減算代入
A <<=  B   '左シフト代入
A >>=  B   '右シフト代入
A and= B   '論理積代入
A or=  B   '論理和代入
A xor= B   '排他的論理和代入

A = B

B式の演算結果がAの型に暗黙的にキャストされ(キャストの種類によっては警告・エラーになる場合があります)、Aに代入されます。

その他の代入演算子の例を挙げてみます。

A and= B

このコードは、Aが一度しか参照されない点を除き、下記のコードと同等の意味になります。

A = A and B

インクリメント・デクリメント演算子

A++ 'インクリメント
A-- 'デクリメント

Aが数値型のとき、インクリメント演算子は値を1増やし、デクリメント演算子は値を1減らす副作用を持ちます。現在のところ式の結果を使用することはできません。

New/Delete演算子

New T
Delete obj

Tには型(現在クラスのみ)を指定します。指定された型のインスタンスをヒープに生成し、Tが参照型の場合、それへの参照を結果として返します。

Deleteは互換性のためのみに存在します。

キャスト演算子

A As B

Bには型名を指定します。AはBの型にキャストされます。


算術演算子

A ^   B   '指数演算
- A       'マイナス符号
A *   B   '乗算
A /   B   '除算
A \   B   '整数除算
A mod B   '乗除演算
A +   B   '加算
A -   B   '減算
A >>  B   '右シフト
A <<  B   '左シフト

優先順位は上に位置するものほど高くなっています。ただし、「乗算・除算・整数除算」、「加算・減算」、「右シフト・左シフト」の優先順位は同一です。同一優先順位の演算子が一つの式に複数存在するときは、式は左から右へ順に評価されます。


比較演算子

A =  B   'AとBは等しい 
A <> B   'AとBは等しくない
A <  B   'AはB未満
A >  B   'AはBより大きい
A <= B   'AはB以上
A >= B   'AはB以下

条件が一致したときは "-1" が、一致しなかったときは "0" が返ります。


論理演算子

Not A     '論理否定
A and B   '論理積
A or  B   '論理積
A xor B   '排他的論理和

優先順位は上に位置するものほど高くなっています。なお、ビット演算子としても機能します。

全体の優先順位

優先順位はNew演算子、キャスト演算子、算術演算子、関係演算子、論理演算子、代入演算子及びインクリメント・デクリメント演算子の順になります。


結合規則

ABの式は左結合です。同一優先順位の演算子が一つの式に複数存在するときは、式は左から右へ順に評価されます。式の一部を他の部分より優先的に評価する場合は、括弧を使います。下記に例を示します。

Print 128/32/4
Print 128 / (32/4)

一番目の式は左から順に式が評価されるため、"128÷32" の結果から4を割ります。二番目の式は括弧内の "32÷4" が優先的に評価され、その結果で128を割ります。