[解決済み] Swiftのswitch文での小なり大なり
2022-04-21 11:25:14
質問
についてよく知っています。
switch
ステートメントに置き換えるにはどうしたらいいのでしょうか?
switch
:
if someVar < 0 {
// do something
} else if someVar == 0 {
// do something else
} else if someVar > 0 {
// etc
}
解決方法は?
ここで、ひとつのアプローチを紹介します。仮に
someVar
は
Int
またはその他の
Comparable
を使用すると、オプションでオペランドを新しい変数に代入することができます。これによって
where
というキーワードがあります。
var someVar = 3
switch someVar {
case let x where x < 0:
print("x is \(x)")
case let x where x == 0:
print("x is \(x)")
case let x where x > 0:
print("x is \(x)")
default:
print("this is impossible")
}
これは少し簡略化できます。
switch someVar {
case _ where someVar < 0:
print("someVar is \(someVar)")
case 0:
print("someVar is 0")
case _ where someVar > 0:
print("someVar is \(someVar)")
default:
print("this is impossible")
}
を避けることもできます。
where
キーワードは範囲マッチングで完全に解決されます。
switch someVar {
case Int.min..<0:
print("someVar is \(someVar)")
case 0:
print("someVar is 0")
default:
print("someVar is \(someVar)")
}
関連
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Pythonのswitch文の代用品?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] switch文の中で変数を宣言してはいけないのはなぜですか?
-
[解決済み] Stringでswitch文が使えないのはなぜですか?
-
[解決済み] JavaScriptで複数ケースを扱うSwitch文
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] switch文の複数ケース
-
[解決済み】Swift。switchステートメントでクラスの型をテストする
-
[解決済み】SwiftでFloatをIntに変換する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Swift presentViewController
-
[解決済み] Swiftで文字列が別の文字列を含んでいるかどうかを確認するには?
-
Swift タイプの表現は、より多くの文脈がないと曖昧である。
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] Fatal error.とは何ですか?Unexpectedly found nil while unwrapping an Optional value" とはどういう意味ですか?
-
[解決済み] SwiftでString.Indexはどのように動作するのか
-
[解決済み】==と===の違いについて
-
[解決済み】SwiftでFloatをIntに変換する。
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?
-
[解決済み】UIViewControllerの最上位機種を取得する。