#3 Dartで学ぶ演算子の基本

Dartの演算子は、基本的な計算に加えて、null(値がない状態)を安全に扱うための演算子が充実しているのが特徴です。この記事では、Dartの基本的な演算子と、Flutter開発でよく登場するnull安全の演算子について解説します。

算術演算子・比較演算子

Dartでは、次のような演算子を使います。

  • + - * / % 算術演算子
  • == != > < 比較演算子
  • && || ! 論理演算子

整数同士の割り算で商だけを求めたい場合は、専用の~/という演算子を使います。

print(10 / 3);  // 3.3333333333333335(通常の割り算)
print(10 ~/ 3); // 3(商だけを整数で取得)
print(10 % 3);  // 1(余り)

複合代入演算子で短く書く

「変数に加算してから代入し直す」という処理はよく登場するため、まとめて書ける複合代入演算子が用意されています。

int count = 0;
count += 1; // count = count + 1 と同じ
count *= 2; // count = count * 2 と同じ

Null対応の演算子

Dartには、null安全という仕組みに対応した便利な演算子が用意されています。

  • ?? 値がnullのとき、代わりの値を使う
  • ??= 値がnullのときだけ、新しい値を代入する
  • ?. 値がnullでなければ処理を続ける
String? nickname;
nickname ??= "名無しさん";
print(nickname); // 名無しさん

String? name;
print(name?.length); // nameがnullならnullを出力(エラーにならない)

?.は、オブジェクトがnullでない場合だけメソッドやプロパティにアクセスし、nullの場合はエラーを起こさずにnullを返してくれます。「もしかしたら値が無いかもしれない」変数を安全に扱うために欠かせない演算子です。

Dartならではの注意点

整数の割り算の商を求める~/という演算子は、他の言語ではあまり見かけない独特な記号です。普通の割り算/と混同しやすいので、「商が欲しいときは~/」と意識的に覚えておくとよいでしょう。また、null安全な変数を宣言するには型の後ろに?を付ける必要があり(String? nicknameのように)、これを忘れると「nullを許容しない変数にnullを代入しようとしている」というコンパイルエラーになります。エラーが出たら、まず型に?が必要かどうかを確認しましょう。

まとめ

Dartの演算子は基本的な計算に加え、~/による商の計算と、??・??=・?.をはじめとしたnull安全のための演算子が特徴です。Flutter開発でも頻繁に登場するので、早いうちに慣れておきましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Dartをもっと学びたい方には「ゼロから学ぶFlutterアプリ開発」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本