反復パターンと可変性
配列・辞書・集合に対する一般的な反復パターンを学び、インデックスやenumerated()を使い、letとvarによる可変性(コピーオンライトの基本)を理解します。
「反復パターンと可変性」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全3レッスンが含まれています。
反復と可変性の理由
目標: コレクションを安全かつ明確に反復し、いつ変更可能なのかを理解します。Array、Dictionary、Set、インデックス、enumerated()、さらにletとvarの違いについて学びます。
for-in(Array)
for-inは要素を直接反復します。Arrayに対してシンプルで明確な方法です。
let nums = [10, 20, 30]
for n in nums {
print("value:", n)
}enumerated()
反復中に(index, value)のペアを取得するにはenumerated()を使用します。
let letters = ["a","b","c"]
for (i, ch) in letters.enumerated() {
print(i, ch) // 0 a, 1 b, 2 c
}DictionaryとSet
Dictionaryは(key, value)のペアを生成します。Setには順序がないため、安定した出力にはsorted()を使用します。
let ages = ["Ada": 20, "Bob": 25]
for (name, age) in ages {
print(name, age)
}
let colors: Set<String> = ["red", "green", "blue"]
for c in colors.sorted() { // sort for stable order
print(c)
}インデックスとスライス
インデックスベースでアクセスするにはstartIndex、endIndex、index(after:)を使用します。スライスはArraySliceのビューです。
let arr = [5,6,7,8]
var i = arr.startIndex
while i < arr.endIndex {
print("arr[", i, "] =", arr[i])
i = arr.index(after: i)
}
let slice = arr[1...2] // ArraySlice
print("slice", slice)可変性とCOW
可変性: 変更するにはvarで宣言します。コレクションではcopy-on-writeが使われるため、変更するまではコピーのコストが低く抑えられます。
let fixed = [1,2,3]
// fixed.append(4) // error: cannot use mutating member on immutable value
var bag = [1,2,3]
bag.append(4) // ok
var bagCopy = bag // COW: cheap copy until either changes
bagCopy[0] = 9
print("bag", bag, "copy", bagCopy)可変性のルール
確認: コレクションを変更できるようにする宣言はどれですか?
まとめ
まとめ: 要素ベースのfor-inを優先し、インデックスと値にはenumerated()を使用します。順序が必要な場合はSetをソートし、String/Arrayのインデックスで移動します。変更する場合だけvarを使い、COWを意識しましょう。
よくある質問
「反復パターンと可変性」レッスンは無料ですか?
はい。「反復パターンと可変性」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全3レッスンが含まれています。
「反復パターンと可変性」で何を学びますか?
配列・辞書・集合に対する一般的な反復パターンを学び、インデックスやenumerated()を使い、letとvarによる可変性(コピーオンライトの基本)を理解します。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。
「反復パターンと可変性」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 配列、辞書、集合
- 集合 — 要素の所属確認と演算
- 反復パターンと可変性