式と演算子
代入、算術、ビット演算、論理演算、キャスト、インクリメントとデクリメント、演算子の優先順位を説明します。
Wave Foundation
主な演算子
| 分類 | 演算子 |
|---|---|
| 算術 | +、-、*、/、% |
| 比較 | ==、!=、<、<=、>、>= |
| 論理 | &&、||、! |
| ビット | &、|、^、~、<<、>> |
| 代入 | =、+=、-=、*=、/=、%= |
| インクリメント/デクリメント | ++、-- |
| アドレス/デリファレンス | &value、deref pointer |
| 明示的キャスト | as |
var width: i32 = 12;
var area: i32 = width * 8;
var large: bool = area >= 64;
var widened: i64 = area as i64;
area += 8;
優先順位
演算子は、結合の強い順に次のように評価されます。
- 基本演算と後置演算: 呼び出し、フィールドアクセス、インデックス、後置
++と-- - 単項演算:
!、~、&、deref、前置++と--、単項+と- asキャスト*、/、%+、-<<、>><、<=、>、>===、!=- ビット演算
&、^、| &&、||- 代入と複合代入
代入は右結合なので、連鎖した代入は右から左へ評価されます。演算子を組み合わせた意図が分かりにくい場合は括弧を使ってください。
代入可能な対象
代入と ++/-- は、変数、フィールド、インデックス付き要素、デリファレンスしたポインタなどのストレージ位置に対して作用します。const 値への書き込みは許可されません。