Swift Academy · レッスン

コレクションとしての範囲

範囲のシーケンスに対してmapやfilterを適用します。

レッスン 4/413 ステップ

「コレクションとしての範囲」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。

範囲はシーケンスである

範囲は単なる数値の区間ではなく、map や filter などのコレクションメソッドで変換できるシーケンスです。

let squares = (1...5).map { $0 * $0 }
print(squares)

範囲をマッピングする

(1...n).map { ... } は各数値を新しい値に変換し、配列を生成します。範囲を囲む括弧に注意してください。

let doubled = (1...4).map { $0 * 2 }
print(doubled)

括弧が必要な理由

メソッドを呼び出す前に範囲を括弧で囲む必要があります。そうしないと、Swift が構文を正しく解釈できません。(1...5).map が正しい書き方です。

let labels = (1...3).map { "Item \($0)" }
print(labels)

範囲をフィルタリングする

filter は条件を満たす値だけを残し、一致した値の配列を返します。

let evens = (1...10).filter { $0 % 2 == 0 }
print(evens)

範囲を reduce する

reduce はすべての値を1つにまとめます。ここでは 1 から 100 までの数値を合計しています。

let total = (1...100).reduce(0, +)
print(total)

配列に変換する

範囲を Array(...) でラップすると、すべての値が格納された配列として具体化されます。

let nums = Array(1...5)
print(nums)
print(nums.count)

範囲に対する forEach

forEach を呼び出すと、for ループと同じように、各値に対してクロージャを実行できます。

(1...3).forEach { n in
    print("Tick \(n)")
}

操作を連結する

各操作はコレクションを返すため、filter の後に map を続けるように操作を連結できます。

let result = (1...10).filter { $0 % 2 == 0 }.map { $0 * $0 }
print(result)

検索用データを構築する

範囲のマッピングは、テストデータや検索テーブルをすばやく生成する方法です。

let table = (1...5).map { (n: $0, square: $0 * $0) }
for row in table {
    print("\(row.n) -> \(row.square)")
}

contains と集計

範囲は、contains、min、max などの集計用クエリにも対応しています。

let r = 5...15
print(r.contains(10))
print(r.min() ?? 0)
print(r.max() ?? 0)

一致する値を数える

filter と count を組み合わせると、条件を満たす値の個数を数えられます。

let multiplesOf3 = (1...30).filter { $0 % 3 == 0 }.count
print(multiplesOf3)

確認問題

コレクションとしての範囲を試してみましょう。

まとめ:コレクションとしての範囲

範囲はシーケンスなので、map、filter、reduce、forEach を呼び出せます(括弧が必要なことを忘れないでください)。値を具体化するには Array(range) を使用します。

print((1...5).map { $0 * $0 })
無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
122
レッスン
409

よくある質問

「コレクションとしての範囲」レッスンは無料ですか?

はい。「コレクションとしての範囲」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。

「コレクションとしての範囲」で何を学びますか?

範囲のシーケンスに対してmapやfilterを適用します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Swift Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「コレクションとしての範囲」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwift Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

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

  1. 閉じた範囲と半開範囲
  2. 片側範囲
  3. stride(from:to:by:)によるカウント
  4. コレクションとしての範囲
← Swift Academyに戻る