[解決済み】Swiftでif文に範囲演算子を使うことはできますか?
2022-04-11 17:19:34
質問
範囲演算子
...
と
..<
をif文とする。こんな感じでしょうか。
let statusCode = 204
if statusCode in 200 ..< 299 {
NSLog("Success")
}
解決方法は?
パターンマッチ演算子を使用することができます。
~=
:
if 200 ... 299 ~= statusCode {
print("success")
}
あるいは、式パターンを持つ switch 文(pattern-match が使われます)。 演算子を使用します。)
switch statusCode {
case 200 ... 299:
print("success")
default:
print("failure")
}
なお
..<
は上の値を省略した範囲を表すので、おそらくは
200 ... 299
または
200 ..< 300
.
追加情報です。 上記のコードをXcode 6.3でコンパイルし 最適化をオンにした場合、テストでは
if 200 ... 299 ~= statusCode
実際には、関数コールは全く生成されず、3つのアセンブリ命令が生成されるだけです。
addq $-200, %rdi
cmpq $99, %rdi
ja LBB0_1
のために生成されるアセンブリコードとまったく同じものです。
if statusCode >= 200 && statusCode <= 299
で確認することができます。
xcrun -sdk macosx swiftc -O -emit-assembly main.swift
Swift 2の時点では。 これは次のように書くことができます。
if case 200 ... 299 = statusCode {
print("success")
}
は、新しく導入された if-statementのパターンマッチングを使用しています。 また Swift 2 - "if"におけるパターンマッチ。 .
関連
-
[解決済み] 代入文の「others=>'0'」はどういう意味ですか?
-
[解決済み] SwiftのIF LETはどのように評価されるのですか?
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] 10進数のrange()ステップ値を使用するには?
-
[解決済み] NGIf else "の使い方を教えてください。
-
[解決済み] Python 2.Xのrange関数とxrange関数の違いは何ですか?
-
[解決済み] 複数の変数が1つの値に対して等しいかどうかをテストするには?
-
[解決済み] AngularJS テンプレートにおける if else ステートメント
-
[解決済み】Swift 4でStringのsubstringを使うには?'substring(to:)'は非推奨です。部分的な範囲から'演算子を持つ文字列スライス添字を使用してください。
-
[解決済み] 条件Aを満たした場合、条件Bを満たさないと行動Cができない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Makefileの中で条件がある場合、ターゲット内部で
-
[解決済み] gitlabciでif-else条件を使用する方法
-
[解決済み] 代入文の「others=>'0'」はどういう意味ですか?
-
[解決済み] 中括弧のないif文を使用するのは悪い習慣ですか?[クローズド]
-
[解決済み] cmake if else with option
-
[解決済み】「if」文が多すぎる?
-
[解決済み] Swiftでif文の中で複数のlet-asを使用する
-
[解決済み] 条件Aを満たした場合、条件Bを満たさないと行動Cができない。
-
[解決済み] ワンライナーでif else文を書くには?重複
-
[解決済み] IF」は高いのか?