#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿