演算子
紹介
Wave言語は多様な演算子を提供し、変数間の計算、論理判断、比較、ビット演算などを実行できます。
このドキュメントでは、Waveで使用できる主な演算子を種類別に分けて説明し、それぞれの動作方法と例を一緒に提供します。
演算子は次のカテゴリーに分かれます:
- 算術演算子
- 比較演算子
- 論理演算子
- ビット演算子
- 割り当て演算子
- その他の特殊演算子
算術演算子
算術演算子は数値データを対象に基本的な数学演算を行います。
| 演算子 | 説明 | 例 (a = 10, b = 3) |
|---|---|---|
+ | 加算 | a + b → 13 |
- | 減算 | a - b → 7 |
* | 乗算 | a * b → 30 |
/ | 除算 | a / b → 3 (整数除算) |
% | 余り演算 | a % b → 1 |
比較演算子
比較演算子は二つの値を比較した結果としてbool値を返します。
| 演算子 | 説明 | 例 (a = 10, b = 3) |
|---|---|---|
== | 同じ | a == b → false |
!= | 違い | a != b → true |
< | 小さい | a < b → false |
> | 大きい | a > b → true |
<= | 小さいまたは等しい | a <= 10 → true |
>= | 大きいまたは等しい | a >= b → true |
論理演算子
論理演算子はbool値に対して真/偽の組み合わせを処理します。
| 演算子 | 名前 | 説明 | 例 |
|---|---|---|---|
&& | 論理AND | 二つの値がどちらもtrueのときだけtrue | true && false → false |
| \`\ | 論理OR | どちらか一方がtrueならtrue | \`true \ |
! | 論理NOT | trueをfalseに、falseをtrueに反転 | !true → false |
ビット演算子
ビット演算子は整数型データをビット単位で操作します。
| 演算子 | 名前 | 説明 | 例 |
|---|---|---|---|
& | ビット AND | 二つのビットが両方とも1のとき1 | a & b → 2 |
| \`\ | ビット OR | 二つのビットのうちどちらかが1であれば1 | b→7\` |
^ | ビット XOR | 二つのビットが異なるとき1 | a ^ b → 5 |
~ | ビット NOT | ビットを反転 | ~a → -7 |
<< | 左シフト | ビットを左に移動 | a << 1 → 12 |
>> | 右シフト | ビットを右に移動 | a >> 1 → 3 |
割り当て演算子
値を変数に保存するときに使用します。 ほとんどの場合、算術演算子と組み合わせて省略できます。
| 演算子 | 説明 | 例示 (a = 5) |
|---|---|---|
= | 基本割り当て | a = 10 |
+= | 加算後割り当て | a += 2 → 7 |
-= | 減算後割り当て | a -= 1 → 4 |
*= | 乗算後割り当て | a *= 3 → 15 |
| /= | 除算後割り当て | a /= 5 → 1 |
%= | 剰余後割り当て | a %= 4 → 1 |
その他の特殊演算子
Waveは次のような固有または特別な意味を持つ演算子も提供します。
| 演算子 | 名前 | 説明 | 例 |
|---|---|---|---|
?? | null 統合演算子 | 左の値がnullの場合、右の値を使用 | a ?? b → aがnullならばb |
?: | 条件演算子(三項演算子) | 条件に応じて値を選択 | 条件 ? 真値 : 偽値 |
in | 含有可否確認 | 値がコレクションに含まれているか確認 | "a" in list |
is | 型比較演算子 | 値の型を確認 | x is i32 |
!& | NAND | 論理NAND演算 | 高級論理演算 |
| \`!\ | NOR | 論理NOR演算 | 高級論理演算 |
~^ | XNOR | 論理XNOR演算 | 高級論理演算 |
要約
Waveは数学的演算から論理判断、ビット操作、条件分岐まで様々な演算子を提供します。 これらの演算子は変数と相互作用したり条件を構築したり、複雑な計算やフロー制御に不可欠なツールです。
各演算子の優先順位と結合方向などは後ほど「優先順位と評価順序」セクションで扱うことができます。