Wycinanie fragmentów tablicy, część 1
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 73 z 86.
Czasami nie potrzebujesz całej tablicy, a jedynie jej fragmentu. Swift ułatwia wyodrębnianie podzbioru elementów za pomocą wycinania fragmentu tablicy przy użyciu operatorów zakresu.
Aby uzyskać wycinek, użyj zakresu wewnątrz nawiasów indeksowania. Najczęściej stosowane podejście wykorzystuje operator zakresu półotwartego (..<), który uwzględnia indeks początkowy, ale wyklucza indeks końcowy:
let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice) // [20, 30, 40]Tutaj 1..<4 daje nam elementy o indeksach 1, 2 i 3, ale nie o indeksie 4. Jest to przydatne, gdy dokładnie wiesz, w którym miejscu chcesz zakończyć.
Jeśli chcesz uwzględnić indeks końcowy, użyj operatora zakresu domkniętego (...):
let letters = ["a", "b", "c", "d", "e"]
let slice = letters[1...3]
print(slice) // ["b", "c", "d"]Ważny szczegół: wynikiem wycinania fragmentu jest ArraySlice, a nie zwykła Array. Jeśli potrzebujesz prawdziwej tablicy, opakuj ją w Array():
let original = [1, 2, 3, 4, 5]
let sliced = Array(original[0..<3])
print(sliced) // [1, 2, 3]Wyzwanie
Łatwy Napisz funkcję getMiddleElements, która przyjmuje numbers, start i end oraz zwraca wycinek tablicy od indeksu początkowego do indeksu końcowego (bez tego indeksu).
Użyj operatora przedziału lewostronnie domkniętego i prawostronnie otwartego (..<), aby wyodrębnić określoną część tablicy i zwrócić ją jako zwykłą tablicę.
Parametry:
numbers([Int]): Tablica do wycięciastart(Int): Indeks początkowy (włącznie)end(Int): Indeks końcowy (bez tego indeksu)
Zwraca: Tablicę zawierającą elementy od indeksu początkowego do indeksu końcowego (bez tego indeksu) ([Int])
Przykład: Jeśli numbers ma wartość [10, 20, 30, 40, 50, 60], start ma wartość 1, a end ma wartość 4, funkcja powinna zwrócić [20, 30, 40].
Spróbuj swoich sił
func getMiddleElements(numbers: [Int], start: Int, end: Int) -> [Int] {
// Wpisz kod tutaj
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 1
Operatory arytmetyczneOperator moduloPrzypisanie złożonePodsumowanie — prosta matematykaOperatory porównania7Podstawowe wejście/wyjście
Funkcja printInterpolacja ciągów znakówWejście ReadLineKonwersja typówPowtórka – do 120Powtórka – prawda czy fałsz10Funkcje
Deklarowanie funkcjiParametry i argumentyWartości zwracaneEtykiety argumentówPowtórka – funkcja SigmaPowtórka – funkcja walidującaWartości domyślne2Zmienne
let vs varAdnotacje typówLiczbyŁańcuch znakówWartość logicznaKonwencje nazewnictwaPodsumowanie – inicjalizacja zmiennych5Operatory, część 2
Operatory logiczne, część 1Operatory logiczne, część 2Powtórka – prosta logikaOperatory logiczne, część 3Operator trójargumentowy8Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych wejściowych11FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz14Zaawansowane tablice
Wycinanie fragmentów tablicy, część 1Wycinanie fragmentów tablicy, część 2Operatory sekwencjiMetoda contains3Typy opcjonalne
Czym są typy opcjonalneRozpakowywanie za pomocą if letGuard letOperator nil-coalescingPodsumowanie — bezpieczne rozpakowywanie6Podejmowanie decyzji
Instrukcja ifIf - ElsePowtórka – prosty kalkulatorInstrukcja switchSwitch z zakresami9Pętle
Pętla for-inPętla whilePętla repeat-whileInstrukcja breakInstrukcja continuePowtórzenie – silniaZakresy w pętlachPętla zagnieżdżonaPowtórzenie – dynamiczne dane wejściowePoćwicz samodzielnie: Edytor online Swift