2
1

More than 3 years have passed since last update.

[Swift] Tupleのswitchで条件マトリックスをもれなく分岐させる

Last updated at Posted at 2020-09-06

今日からでもすぐに取り入れられて、

  • コードをよりクリーンにできる、とか
  • 工数を削減できる、とか

そんなTipsを紹介していく記事シリーズです。
「知らなかった」「気づかなかった」「忘れていた」そんな誰かの役に立てば幸いです。

前提環境

  • Xcode 11.3.1
  • Swift 5.1.3

Tupleのswitch

var isWeekday = false
var isChildlen = false
var isSenior = false

switch (isWeekday, isChildlen, isSenior) {
case (true, true, _):
    print("平日・子ども料金")
case (true, _, true):
    print("平日・シルバー料金")
case (true, _, _):
    print("平日・大人料金")
case (false, true, _):
    print("休日・子ども料金")
case (false, _, true):
    print("休日・シルバー料金")
case (false, _, _):
    print("休日・大人料金")
}
  • Swiftのswitchは全ての組み合わせを網羅しないとコンパイルエラーにしてくれます。
  • それはTupleをswitchする場合も同様で、全要素が取りうる全組み合わせを網羅させることが容易になります。
  • 可読性はあまりよくないので、「全ての組み合わせを網羅する」ことを最優先にしたい場合以外は避けた方が良い書き方かもしれません。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1