はじめに
Dartは、シンプルでパワフルな演算子を数多く備えています。演算子を上手に活用することで、コードがシンプルになり、より効率的に動作するプログラムを書くことができます。この記事では、Dartで利用できるさまざまな演算子について、具体的な使い方やその利便性を解説します。前回のFlutter開発入門の記事はこちらです。
基本的な算術演算子
まずは、基本的な算術演算子から見ていきましょう。Dartでは、ほとんどのプログラミング言語でおなじみの演算子がサポートされています。
- 加算
+
: 2つの数値を加算します。 - 減算
-
: 2つの数値を減算します。 - 乗算
*
: 2つの数値を掛け算します。 - 除算
/
: 2つの数値を割り算します。結果は常にdouble
型になります。 - 整数除算
~/
: 割り算の結果を整数で返します。 - 剰余
%
: 割り算の余りを返します。
以下コード例になります。
void main() {
var a = 10;
var b = 3;
print(a + b); // 13
print(a - b); // 7
print(a * b); // 30
print(a / b); // 3.3333333333333335
print(a ~/ b); // 3
print(a % b); // 1
}
比較演算子
比較演算子は、2つの値を比較して、true
またはfalse
のブール値を返します。Dartでは、以下の比較演算子を利用できます。
- 等しい
==
: 2つの値が等しいかどうかを比較します。 - 等しくない
!=
: 2つの値が等しくないかどうかを比較します。 - より大きい
>
: 1つ目の値が2つ目の値より大きいかどうかを比較します。 - より小さい
<
: 1つ目の値が2つ目の値より小さいかどうかを比較します。 - 以上
>=
: 1つ目の値が2つ目の値以上かどうかを比較します。 - 以下
<=
: 1つ目の値が2つ目の値以下かどうかを比較します。
以下コード例になります。
void main() {
var a = 5;
var b = 10;
print(a == b); // false
print(a != b); // true
print(a > b); // false
print(a < b); // true
print(a >= b); // false
print(a <= b); // true
}
論理演算子
論理演算子は、複数の条件を組み合わせたり、条件を反転させたりするために使用されます。Dartには以下の論理演算子があります。
- AND
&&
: 両方の条件がtrue
である場合にtrue
を返します。 - OR
||
: どちらか一方の条件がtrue
であればtrue
を返します。 - NOT
!
: 条件を反転させます。true
をfalse
に、false
をtrue
にします。
以下コード例になります。
void main() {
var x = true;
var y = false;
print(x && y); // false
print(x || y); // true
print(!x); // false
print(!y); // true
}
代入演算子
代入演算子は、変数に値を代入するために使用されます。Dartでは、通常の代入に加えて、演算を伴う代入演算子も用意されています。
=
: 単純な代入を行います。+=
: 変数に値を加算してから代入します。-=
: 変数から値を減算してから代入します。*=
: 変数に値を掛け算してから代入します。/=
: 変数に値を割り算してから代入します。%=
: 変数に剰余を計算してから代入します。
以下コード例になります。
void main() {
var a = 5;
a += 2; // a = a + 2 と同じ
print(a); // 7
a *= 3; // a = a * 3 と同じ
print(a); // 21
}
条件演算子(3項演算子)
条件演算子(または3項演算子)は、簡潔な条件分岐を行うために使われます。形式はcondition ? expr1 : expr2
で、条件がtrue
の場合にはexpr1
を、false
の場合にはexpr2
を返します。以下コード例になります。
void main() {
var isLogined = true;
var user = isLogined ? 'Welcome back!' : 'Please log in.';
print(user); // 'Welcome back!'
}
null条件演算子
Dartには、nullを扱うための便利な演算子がいくつかあります。これらは、変数がnull
の場合に代替の値を提供したり、null
チェックを簡潔に行うために使用されます。
??
: 左辺がnull
の場合に右辺の値を返します。??=
: 左辺がnull
の場合に右辺の値を代入します。?.
: オブジェクトがnull
でない場合にのみ、そのプロパティやメソッドにアクセスします。
以下コード例になります。
void main() {
var username;
print(username ?? 'Guest'); // 'Guest'を出力
username ??= 'TechGrowUp';
print(username); // 'TechGrowUp'を出力
}
型キャスト演算子
Dartでは、ある型の変数を別の型に変換するための演算子も提供されています。
as
: 明示的な型キャストを行います。is
: オブジェクトが指定された型であるかどうかを確認します。型が一致すればtrue
を返します。is!
: オブジェクトが指定された型でない場合にtrue
を返します。
void main() {
var value = 'Hello, Dart!';
print(value is String); // true
print(value is int); // false
var intValue = value as String;
print(intValue); // 'Hello, Dart!'を出力
}
まとめ
Dartの演算子を理解し、適切に使いこなすことで、コードがより効率的かつシンプルになります。今回紹介した演算子は、Dartのプログラミングで頻繁に使用されるため、基本的な使い方をマスターすることが重要です。演算子の使い方を学び、実際のプロジェクトで活用することで、Dartでの開発がさらに楽しく、効果的になるでしょう。
Flutter開発入門の次の記事はこちらです。