「もし〇〇なら A、そうでなければ B」というとき
普通の書き方:
String message;
if (isLoggedIn) {
message = 'ようこそ!';
} else {
message = 'ログインしてください';
}
5行も必要…
Dartのスマートな書き方:
String message = isLoggedIn ? 'ようこそ!' : 'ログインしてください';
たった1行! 😊
読み方: 「isLoggedIn が true なら『ようこそ!』、false なら『ログインしてください』」
Flutter の UI でめちゃくちゃ使う!
条件によって色を変える:
Container(
color: isPaid ? Colors.green : Colors.red, // 支払い済みなら緑、未払いなら赤
child: Text('月謝'),
)
条件によってアイコンを変える:
Icon(
isFavorite ? Icons.favorite : Icons.favorite_border, // お気に入りならハート、そうでなければ枠線
color: isFavorite ? Colors.red : Colors.grey,
)
数字でも使える:
// 大人料金 vs 子供料金
int price = age >= 18 ? 1000 : 500;
// 割引適用
double total = isMember ? price * 0.9 : price; // 会員なら10%オフ
入れ子もできる
(でも、あまり複雑にすると読みにくいので、普通の if-else を使ったほうがいい場合もあります 😅)
String status = score >= 90 ? '優秀' :
score >= 70 ? '良好' :
score >= 50 ? '普通' : '要努力';
条件にたいして
条件 ? true の時の値 : false の時の値
↑ ↑ ↑
疑問 なら それ以外
まとめ
? : を使うと、if-else が1行でスッキリ書けます! まるで「これ? それともあれ?」と選ぶような感じです
