0Pricing
Swift Academy · レッスン

値のバインディングと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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 値に対する網羅的なswitch
  2. 範囲とタプルのマッチング
  3. 値のバインディングとwhere句
  4. 複合ケースとfallthrough
← Swift Academyに戻る