Swift Academy · Lektion

Subscripts für benutzerdefinierte Indizierung

Definieren Sie benutzerdefinierte Subscripts, um Elemente mit arrayähnlicher Syntax zu lesen und zu schreiben, ergänzen Sie sicheren Zugriff, unterstützen Sie Indizes mit mehreren Parametern und sogar Subscripts auf Typebene (static).

Lektion 4 von 48 Schritte

Subscripts für benutzerdefinierte Indizierung ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. 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 4 Lektionen.

Überblick

Verwenden Sie Subscripts, um mit der Klammersyntax auf Daten zuzugreifen. Sie können sie schreibgeschützt oder les- und schreibbar gestalten und sogar mehrere Indizes akzeptieren.

Les- und schreibbares Subscript

Erstellen Sie ein get/set-Subscript, um internen Speicher mit einer arrayähnlichen Syntax bereitzustellen.

struct Box {
    private var items: [String] = []
    init(_ values: [String]) { self.items = values }

    subscript(index: Int) -> String {
        get { items[index] }           // may trap if out of bounds (like Array)
        set { items[index] = newValue }
    }
}
var b = Box(["a","b","c"])
print(b[1])     // "b"
b[1] = "B"
print(b[1])     // "B"

Sicheres Subscript

Geben Sie ein Optional zurück, um Fehler bei ungültigen Indizes zu vermeiden: ein benutzerfreundliches sicheres Subscript.

extension Array {
    subscript(safe i: Int) -> Element? {
        return indices.contains(i) ? self[i] : nil
    }
}
let arr = [10,20]
print(arr[safe: 1] ?? -1)  // 20
print(arr[safe: 5] ?? -1)  // -1

Mehrere Parameter

Subscripts können mehrere Parameter annehmen – ideal für Matrizen oder den Zugriff über Koordinaten.

struct Matrix {
    let rows: Int, cols: Int
    private var grid: [Int]
    init(rows: Int, cols: Int, fill: Int = 0) {
        self.rows = rows; self.cols = cols
        self.grid = Array(repeating: fill, count: rows*cols)
    }
    private func index(_ r: Int, _ c: Int) -> Int { r*cols + c }

    subscript(r: Int, c: Int) -> Int {
        get { grid[index(r,c)] }
        set { grid[index(r,c)] = newValue }
    }
}
var m = Matrix(rows: 2, cols: 3)
m[0, 2] = 7
print(m[0, 2])

Typ-Subscript

Fügen Sie ein Typ-Subscript mit static hinzu, um auf dem Typ selbst und nicht auf einer Instanz zu indizieren.

struct Roman {
    static let map: [Int:String] = [1:"I", 5:"V", 10:"X"]
    static subscript(_ n: Int) -> String? {
        return map[n]
    }
}
print(Roman[5] ?? "?")   // "V"

Tipps

Tipps:

  • Geben Sie für einen sicheren Zugriff bevorzugt Optionals zurück.
  • Halten Sie Subscripts einfach; aufwendige Logik gehört in Methoden.
  • Benennen Sie Parameter eindeutig, zum Beispiel [row:col:].

Bedeutung von Subscripts

Kurzer Test: Was ermöglichen Subscripts?

Zusammenfassung

Zusammenfassung: Erstellen Sie les- und schreibbare Subscripts, ergänzen Sie sichere Zugriffe mit Optionals, unterstützen Sie die Indizierung mit mehreren Parametern und definieren Sie sogar Typ-Subscripts.

Kostenlos starten

Lerne Swift mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
122
Lektionen
409

Häufig gestellte Fragen

Ist die Lektion „Subscripts für benutzerdefinierte Indizierung“ kostenlos?

Ja — der vollständige Text von „Subscripts für benutzerdefinierte Indizierung“ 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 4 Lektionen.

Was lerne ich in „Subscripts für benutzerdefinierte Indizierung“?

Definieren Sie benutzerdefinierte Subscripts, um Elemente mit arrayähnlicher Syntax zu lesen und zu schreiben, ergänzen Sie sicheren Zugriff, unterstützen Sie Indizes mit mehreren Parametern und soga… 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 4 von 4.

Wie lange dauert die Lektion „Subscripts für benutzerdefinierte Indizierung“?

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. Properties und Subscripts
  2. lazy und Property-Observer
  3. Berechnete Properties mit get/set
  4. Subscripts für benutzerdefinierte Indizierung
← Zurück zu Swift Academy