値のバインディングとwhere句
マッチした値をバインドし、追加の条件を指定します。
「値のバインディングとwhere句」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
case でバインドする
switch の case では、case let x を使って一致した値を定数にバインドできます。これにより、その case 内で値を使用できます。
let value = 42
switch value {
case let n:
print("The number is \(n)")
}タプルの一部をバインドする
必要なタプルの一部だけを、特定の位置に let を指定してバインドできます。
let point = (3, 7)
switch point {
case (let x, 0):
print("On x-axis at \(x)")
case (0, let y):
print("On y-axis at \(y)")
case let (x, y):
print("At \(x), \(y)")
}where 句
case に where 句を追加すると、バインドした値に対して追加の Boolean 条件を適用できます。パターンと条件の両方を満たす場合にだけ case が一致します。
let number = 8
switch number {
case let n where n % 2 == 0:
print("\(n) is even")
case let n:
print("\(n) is odd")
}範囲での where
範囲パターンと where 句を組み合わせて、より細かく制御できます。
let score = 95
switch score {
case 90...100 where score == 100:
print("Perfect")
case 90...100:
print("Excellent")
default:
print("Keep trying")
}タプルでの where
where 句を使って、バインドしたタプルの要素同士を比較できます。
let point = (4, 4)
switch point {
case let (x, y) where x == y:
print("On the diagonal")
case let (x, y):
print("Off diagonal at \(x), \(y)")
}複数の where 条件
where の後には、&& や || を含む任意の Boolean 式を指定できます。
let n = 15
switch n {
case let x where x > 10 && x < 20:
print("In the teens-ish range")
default:
print("Outside range")
}where を使う場合の順序
where 句を含む case は、条件が true の場合にだけ一致します。それ以外の場合、Swift は次の case に進みます。
let temp = 5
switch temp {
case let t where t < 0:
print("Freezing")
case let t where t < 10:
print("Cold")
default:
print("Mild or warm")
}範囲 case でバインドする
where を使うと、値をバインドしながら範囲にも制限できます。
let age = 67
switch age {
case let a where a >= 65:
print("Senior, age \(a)")
case let a where a >= 18:
print("Adult, age \(a)")
default:
print("Minor")
}バインディングで分類する
バインディングと where を組み合わせると、1つの switch で値を分類し、その値を表示することもできます。
let balance = -50
switch balance {
case let b where b < 0:
print("Overdrawn by \(-b)")
case 0:
print("Empty")
case let b:
print("Balance: \(b)")
}バインディングが役立つ理由
バインディングを使わない場合は、元の変数を何度も参照する必要があります。バインディングを使えば、わかりやすいローカル名を付けられ、where によるフィルターとも自然に組み合わせられます。
let input = 21
switch input {
case let n where n.isMultiple(of: 3):
print("\(n) is divisible by 3")
default:
print("Not divisible by 3")
}すべてに一致するバインディング
条件のない最後の case let x は、値を取得できる default のように機能します。
let code = 17
switch code {
case 0:
print("zero")
case let other:
print("non-zero: \(other)")
}クイックチェック
値のバインディングと where をテストします。
まとめ: 値のバインディングと where 句
case let x を使って一致した値をバインドし、where を追加して条件を適用します。これらを組み合わせると、1つの switch で値を分類し、同じ case 内でその値を使用できます。
let n = 6
switch n {
case let x where x > 0: print("positive \(x)")
default: print("non-positive")
}よくある質問
「値のバインディングとwhere句」レッスンは無料ですか?
はい。「値のバインディングとwhere句」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「値のバインディングとwhere句」で何を学びますか?
マッチした値をバインドし、追加の条件を指定します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「値のバインディングとwhere句」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 値に対する網羅的なswitch
- 範囲とタプルのマッチング
- 値のバインディングとwhere句
- 複合ケースとfallthrough