🐺

Dartの三項演算子を使い分ける

2023/03/09に公開

複数の三項演算子をつけることができる?

三項演算子のプログラムを見てみると、選択肢が2択しかないのばかり見かけるが実は、複数書くことができるみたいです🤔
今回は2個つけてみます。

こちらが例です

実行すると、変数の値は、appleだと、trueになり、変数の値がorangeだと、もう一つ書いた三項演算子が実行されて、実行結果はYes orangeになります。

void main() {
  final apple = 'apple';
  final orange = 'orange';
//   final check = fruits == 'apple' ? 'true' : 'false';
  final check = apple == 'apple' ? 'true' : orange == 'orange' ? 'Yes orange' : 'No apple';
  print(check);
}


論理演算を使ってみる

これは、認証機能のロジックを考えていて、思いつきで書いたので正解か分かりませんが、ユースケースとしては、FirebaseAuthのログイン状態を記録していて、 Firestoreのユーザーコレクションに、ユーザー情報があればログインをさせて、nullの場合だとログインページにリダイレクトさせるロジックです。

void main() {
  final authState = true;
  final userState = Taro;
  final check = authState == true && userState != null ? 'ログイン履歴があり、データーベースのユーザー情報が存在するので、HomePageへへリダイレクト' : 'ログイン履歴があるが、データーベースのユーザー情報が存在しないので、LoginPageへリダイレクト';
  print(check);
}


まとめ

自分の実現したい機能を作りたいときに、イメージをして次はこんな処理をすれば実現できると考えつつプログラムを考えておりますが、なかなか実現できないですね😅

Flutter大学

Discussion