Die enumerate-Methode
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 70 von 86.
Manchmal müssen Sie beim Iterieren über ein Array nicht nur das Element, sondern auch seine Position kennen. Während Sie den Index manuell mit einer Zählervariablen verfolgen könnten, bietet Swift eine sauberere Lösung: die enumerated()-Methode.
Wenn Sie enumerated() auf einem Array aufrufen, gibt es eine Sequenz von Tupeln zurück, wobei jedes Tupel den Index und das Element enthält:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueBeachten Sie, wie wir jedes Tupel direkt in der Schleife mit (index, color) dekonstruieren. Dies ermöglicht uns den Zugriff auf beide Werte ohne zusätzlichen Code.
Dies ist besonders nützlich, wenn Sie nummerierte Listen anzeigen oder Operationen durchführen müssen, die von der Position eines Elements abhängen:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Aufgabe 1: Wake up
// Aufgabe 2: Exercise
// Aufgabe 3: Eat breakfastDie enumerated()-Methode hält Ihren Code sauber und lesbar im Vergleich zur manuellen Verwaltung einer separaten Zählervariable.
Aufgabe
EinfachSchreiben Sie eine Funktion formatWithPositions, die items entgegennimmt und einen formatierten String zurückgibt, der jedes Element mit seiner Positionsnummer anzeigt.
Verwenden Sie die Methode enumerated(), um durch das Array zu iterieren und einen String zu erstellen, bei dem jedem Element seine auf 1 basierende Positionsnummer vorangestellt wird.
Logik:
- Iterieren Sie mit
enumerated()durch das Array - Erstellen Sie für jedes Element einen String im Format
"position. item"(unter Verwendung einer auf 1 basierenden Nummerierung) - Verbinden Sie alle formatierten Strings mit einem Zeilenumbruchzeichen (
\n)
Parameter:
items([String]): Ein Array von Strings, die formatiert werden sollen
Rückgabewert: Ein einzelner String, bei dem jedes Element in einer eigenen Zeile steht, vorangestellt mit seiner Positionsnummer (String). Format: "1. item1\n2. item2\n3. item3"
Beispiel: Wenn items gleich ["Apple", "Banana", "Cherry"] ist, sollte die Funktion Folgendes zurückgeben:
"1. Apple\n2. Banana\n3. Cherry"Hinweis: Wenn das Array leer ist, geben Sie einen leeren String "" zurück.
Spickzettel
Die Methode enumerated() gibt eine Sequenz von Tupeln zurück, die sowohl den Index als auch das Element eines Arrays enthalten:
let colors = ["Red", "Green", "Blue"]
for (index, color) in colors.enumerated() {
print("\(index): \(color)")
}
// 0: Red
// 1: Green
// 2: BlueJedes Tupel wird direkt in der Schleife unter Verwendung der Syntax (index, element) zerlegt, was den Zugriff auf sowohl die Position als auch den Wert ermöglicht.
Dies ist nützlich, um nummerierte Listen zu erstellen, indem 1 zum nullbasierten Index addiert wird:
let tasks = ["Wake up", "Exercise", "Eat breakfast"]
for (index, task) in tasks.enumerated() {
print("Task \(index + 1): \(task)")
}
// Task 1: Wake up
// Task 2: Exercise
// Task 3: Eat breakfastProbier es selbst
func formatWithPositions(items: [String]) -> String {
// Code hier schreiben
}
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische Eingabe