技術,プログラミング言語
Flutterを始めてみましたが、コードはDart言語で書きます。という訳で、Dart言語のツアーを見て勉強しながら、自分用にメモをまとめてみました。今回は演算子です。
前回分は以下から。
演算子
- Dartの演算子の多くはクラスのメンバとして実装できる。
- 演算子を使用すると式を作成する。
- 演算指標の上にあるものほど優先度が高い。
- 2つのオペランドを取る演算子では左側のオペランドで使用されるメソッドが決定する。
種類 | 演算子 |
---|
単項接尾辞 | 式++ 式– () [] ?[] . ?. |
単項接頭辞 | -式 !式 ~式 ++式 –式 await 式 |
乗除算演算子 | * / % ~/ |
加減算演算子 | + – |
シフト演算子 | << >> >>> |
ビット演算子(論理積) | & |
ビット演算子(排他的論理和) | ^ |
ビット演算子(論理和) | | |
関係演算子、型テスト演算子 | >= > <= < as is is! |
等号演算子 | == != |
論理演算子(論理積) | && |
論理演算子(論理和) | || |
nullチェック演算子 | ?? |
条件式(三項演算子) | 式1 ? 式2 : 式3 |
カスケード | .. ?.. |
代入演算子 | = *= /= += -= &= ^= 等 |
演算子表
算術演算子
算術演算子と前置、後置のインクリメント演算子がある。
演算子 | 意味 | 備考 |
---|
+ | 加算 | 2 + 3 == 5 |
– | 減算 | 2 – 3 == -1 |
-式 | 単項マイナス(否定) | |
* | 乗算 | 2 * 3 == 6 |
/ | 除算 | 5 / 2 == 2.5 |
~/ | 除算(整数値を返す) | 5 ~/ 2 == 2 |
% | 剰余 | 5 % 2 == 1 |
算術演算子
演算子 | 意味 | 備考 |
---|
++変数 | 変数を+1 | 式の値も変数+1 |
変数++ | 変数を+1 | 式の値は変数のまま |
–変数 | 変数を-1 | 式の値も変数-1 |
変数– | 変数を-1 | 式の値は変数のまま |
インクリメント演算子
等号と関係演算子
演算子 | 意味 | 備考 |
---|
== | 一致 | 2 == 2 |
!= | 不一致 | 2 != 3 |
> | より大きい | 3 > 2 |
< | より小さい | 2 < 3 |
>= | 以上 | 3 >= 3 |
<= | 以下 | 3 <= 3 |
関係演算子
- 2つのオブジェクトが同じものを表しているかどうかを調べるには==演算子を使用する。
- 全く同じオブジェクトかどうかを調べるにはidentical()関数を使用する。
- いずれか、または、両方がnullの場合、両方がnullならtureを返し、一方だけならばfalseを返す。
- x == yは、yを引数としたxの==演算子の結果を返す。
型テスト演算子
演算子 | 意味 |
---|
as | 型キャスト |
is | オブジェクトの型が指定されたものならばtrueを返す |
is! | オブジェクトの型が指定されたものでなければtrueを返す |
型テスト演算子
- 「obj is T」の結果は、objがTで記述されたインタフェースが実装されていればtrueを返す。
- 「obj is Object?」は常にtrueになる。
- 「obj is Object」は、obj がnullの場合はfalseになる。それ以外はtrueになる。
- オブジェクトがその型であることが確実な場合のみ、as演算子でオブジェクトをキャストできる。
代入演算子
- =演算子で代入できる。??=演算子は代入先がnullの場合のみ代入できる。
論理演算子
ビット演算士とシフト演算子
演算子 | 意味 | 備考(value = 0x22; bitmask = 0x0f;) |
---|
& | 論理積 | value & bitmask == 0x02, value & ~bitmask == 0x20 |
| | 論理和 | value | bitmask == 0x2f |
^ | 排他的論理和 | value ^ bitmask == 0x2d |
~式 | 単項のビット単位の補数 | |
<< | 左シフト | value << 4 == 0x220 |
>> | 右シフト | value >> 4 == 0x02, -value >> 4 == -0x03 |
>>> | 符号なし右シフト | value >>> 4 = 0x02, -value >>> 4 == 0 |
ビット演算子、シフト演算子
条件式
演算子 | 意味 | 備考 |
---|
条件式 ? 式1 : 式2 | 条件式がtureなら式 1、falseなら式2を返す | |
式 1 ?? 式2 | 式 1がnullなら式2を返す | 式 1 != null ? 式 1 : 式2と同じ |
条件式
カスケード記法(..)
- カスケード記法を使用すると、同じオブジェクトに対して一連の操作を行うことができる。
- 関数呼び出しもフィールドへのアクセスも可能である。
- 一時的な変数を作成する必要がなくなる
- オブジェクトがnullである可能性がある場合、最初のカスケードを"?.."にすると、nullの場合は実行されない。
他の演算子については他の言語でも同様なので、あまり他では見ないカスケード記法についてサンプルを書いてみました。あまり実用的な意味がないサンプルです。
その他の演算子
演算子 | 名前 | 意味 |
---|
() | 関数 | 関数呼び出し |
[] | 添字アクセス | オーバーライド可能な[]演算子の呼び出し |
?[] | 条件付き添字アクセス | 添字アクセスだが、左辺がnullでも良い。nullの場合は式自体がnullになる。
|
. | メンバアクセス | 式のプロパティを参照する。 |
?. | 条件付きメンバアクセス | メンバアクセスだが、左辺がnullでも良い。nullの場合は式自体がnullになる。 |
その他の演算子
次回
次回は制御文と例外処理です。
ディスカッション
コメント一覧
まだ、コメントがありません