Array Slicing Teil 1
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 73 von 86.
Manchmal benötigen Sie nicht ein gesamtes Array – sondern nur einen Teil davon. Swift macht es einfach, eine Teilmenge von Elementen mithilfe von Array-Slicing mit Bereichsoperatoren zu extrahieren.
Um einen Teilbereich (Slice) zu erhalten, verwenden Sie einen Bereich innerhalb der Index-Klammern. Der gängigste Ansatz verwendet den halboffenen Bereichsoperator (..<), der den Startindex einschließt, aber den Endindex ausschließt:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]Hier liefert uns 1..<4 Elemente an den Indizes 1, 2 und 3 – aber nicht Index 4. Dies ist nützlich, wenn Sie genau wissen, wo Sie aufhören möchten.
Wenn Sie den Endindex einschließen möchten, verwenden Sie den geschlossenen Bereichsoperator (...):
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]Ein wichtiges Detail: Das Ergebnis des Slicings ist ein ArraySlice, kein reguläres Array. Wenn Sie ein echtes Array benötigen, umschließen Sie es mit Array():
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]Aufgabe
EinfachSchreibe eine Funktion getMiddleElements, die numbers, start und end entgegennimmt und einen Teilbereich des Arrays vom Start-Index bis zum (aber nicht einschließlich) End-Index zurückgibt.
Verwende den halboffenen Range-Operator (..<), um den angegebenen Teil des Arrays zu extrahieren und als reguläres Array zurückzugeben.
Parameter:
numbers([Int]): Das zu zerteilende Arraystart(Int): Der Start-Index (inklusiv)end(Int): Der End-Index (exklusiv)
Rückgabewert: Ein Array, das die Elemente vom Start-Index bis zum (aber nicht einschließlich) End-Index enthält ([Int])
Beispiel: Wenn numbers gleich [10, 20, 30, 40, 50, 60] ist, start gleich 1 ist und end gleich 4 ist, sollte die Funktion [20, 30, 40] zurückgeben.
Spickzettel
Swift ermöglicht es Ihnen, einen Teil eines Arrays mithilfe von Array-Slicing mit Bereichsoperatoren zu extrahieren.
Verwenden Sie den halboffenen Bereichsoperator (..<), um von einem Startindex bis zu (aber nicht einschließlich) einem Endindex zu schneiden:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]Verwenden Sie den geschlossenen Bereichsoperator (...), um den Endindex einzuschließen:
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]Array-Slicing gibt ein ArraySlice zurück. Um es in ein reguläres Array umzuwandeln, umschließen Sie es mit Array():
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]Probier es selbst
func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
// Schreibe hier den Code
}
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