0Pricing
Swift Academy · Lektion

Sequence-/Collection-Hierarchien

Verstehen Sie Sequence und Collection (sowie Bidirectional/RandomAccess): Garantien für die Traversierung, Indizes und wann Algorithmen stärkere Protokolle erfordern.

Sequence-/Collection-Hierarchien ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.

Hierarchieübersicht

Der Stack der iterierbaren Protokolle:

  • Sequence: Iteration über einen Iterator, möglicherweise nur in einem Durchlauf.
  • Collection: mehrere Durchläufe, indizierbar (startIndex/endIndex).
  • BidirectionalCollection: Indizes können rückwärts bewegt werden.
  • RandomAccessCollection: Indizeschritte in konstanter Zeit.

Sequence-Iteration

Sequence garantiert, dass Sie Elemente in der richtigen Reihenfolge durchlaufen können; über Indizes oder mehrere Durchläufe muss nichts garantiert werden.

let seq = [1, 2, 3] as AnySequence<Int>    // wrap as AnySequence for demo
for x in seq { print(x, terminator: " ") }
print("")

Collection-Indizes

Collection ergänzt Indizes und ermöglicht das Durchlaufen in mehreren Durchläufen. Sie können sicher erneut iterieren.

let arr = ["a","b","c"]          // Array is a Collection
print(arr.startIndex == 0)            // true for Array
print(arr.endIndex == 3)              // endIndex is "one past last"
for i in arr.indices { print(arr[i], terminator: " ") }
print("")
// Iterate again (multi-pass)
for ch in arr { print(ch, terminator: " ") }
print("")

Erweiterte Fähigkeiten

BidirectionalCollection kann Indizes rückwärts bewegen. RandomAccessCollection unterstützt Indizeschritte in konstanter Zeit (z. B. Array).

let text = "Swift"                         // String is a BidirectionalCollection
var i = text.index(before: text.endIndex)       // move backward
print(text[i])                                   // last character
// Array is RandomAccessCollection: jumping indices is cheap
let nums = [10,20,30,40]
print(nums[nums.startIndex.advanced(by: 2)])     // 30

Benutzerdefinierte Sequence

Eine benutzerdefinierte Sequence kann nur einen Durchlauf erlauben. Nach einer Iteration kann der Iterator erschöpft sein.

struct Countdown: Sequence, IteratorProtocol {
    var current: Int
    mutating func next() -> Int? {
        guard current >= 0 else { return nil }
        defer { current -= 1 }
        return current
    }
}
var cd = Countdown(current: 3)
for n in cd { print(n, terminator: " ") }   // 3 2 1 0
print("")
// cd is exhausted; iterating again yields nothing (single-pass behavior)

Das richtige Protokoll wählen

Richtlinien:

  • Verwenden Sie generische Algorithmen auf Sequence, wenn ein Durchlauf ausreicht.
  • Verlangen Sie Collection für mehrere Durchläufe oder Indexoperationen.
  • Bevorzugen Sie RandomAccessCollection für Algorithmen, die häufig zu anderen Indizes springen (z. B. binäre Suche).

Collection vs. Sequence

Kurztest: Was ergänzt Collection gegenüber Sequence?

Zusammenfassung

Zusammenfassung: Sequence → grundlegende Iteration. Collection → Indizes und mehrere Durchläufe. Bidirectional → rückwärts bewegen. RandomAccess → Indizeschritte in konstanter Zeit. Wählen Sie das kleinste Protokoll, das zu Ihrem Algorithmus passt.

Häufig gestellte Fragen

Ist die Lektion „Sequence-/Collection-Hierarchien“ kostenlos?

Ja — der vollständige Text von „Sequence-/Collection-Hierarchien“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Sequence-/Collection-Hierarchien“?

Verstehen Sie Sequence und Collection (sowie Bidirectional/RandomAccess): Garantien für die Traversierung, Indizes und wann Algorithmen stärkere Protokolle erfordern. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.

Wie lange dauert die Lektion „Sequence-/Collection-Hierarchien“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Sequence-/Collection-Hierarchien
  2. Map/Filter/Reduce, Lazy-Sequences
  3. Benutzerdefinierte Iteratoren und Performance-Tipps
← Zurück zu Swift Academy