0Pricing
Swift Academy · Lekcja

Tworzenie wycinków za pomocą zakresów

Wydobywanie podsekwencji bez kopiowania.

Tworzenie wycinków za pomocą zakresów to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.

Indeksowanie za pomocą zakresu

Gdy tablica jest indeksowana za pomocą zakresu, Swift nie kopiuje elementów do nowej tablicy. Zamiast tego zwraca ArraySlice, który współdzieli pamięć z oryginalną tablicą.

let numbers = [10, 20, 30, 40, 50]
let slice = numbers[1..<4]
print(slice)
print(type(of: slice))

Zakres półotwarty

Operator ..< tworzy zakres półotwarty. 1..<4 obejmuje indeksy 1, 2 i 3, ale nie obejmuje indeksu 4.

let letters = ["a", "b", "c", "d", "e"]
let middle = letters[1..<4]
print(middle)

Wycinanie za pomocą zakresu domkniętego

Jeśli górna granica ma być uwzględniona, należy użyć .... 1...3 obejmuje indeksy 1, 2 i 3.

let scores = [88, 92, 75, 64, 99]
let closed = scores[1...3]
print(closed)

Zakresy jednostronne

Swift obsługuje zakresy jednostronne. arr[2...] oznacza zakres od indeksu 2 do końca, a arr[..<2] oznacza wszystko przed indeksem 2.

let data = [1, 2, 3, 4, 5, 6]
print(data[3...])
print(data[..<3])

Wycinki są widokami

ArraySlice jest widokiem na nadrzędną tablicę. Jego utworzenie jest tanie, ponieważ elementy nie są kopiowane do momentu modyfikacji lub konwersji wycinka.

let big = Array(1...1000)
let window = big[100..<105]
print(window)

Iterowanie po wycinku

Po wycinku można iterować tak samo jak po tablicy. Wartości są tymi samymi elementami, które zawiera nadrzędna tablica.

let words = ["sun", "moon", "star", "comet"]
let pair = words[1..<3]
for w in pair {
    print(w)
}

Wycinek ciągu znaków

Wycinanie działa z dowolnym typem elementów. Tutaj pobieramy zakres z tablicy imion.

let names = ["Ada", "Bob", "Cleo", "Dan", "Eve"]
let some = names[0..<2]
print(some)

Łączenie z count

Można dynamicznie utworzyć zakres, używając właściwości count tablicy, aby pobrać kilka ostatnich elementów.

let nums = [5, 10, 15, 20, 25]
let lastTwo = nums[(nums.count - 2)..<nums.count]
print(lastTwo)

Pusty wycinek

Zakres, którego dolna i górna granica są równe, tworzy pusty wycinek. Jest to poprawne i bezpieczne.

let arr = [1, 2, 3, 4]
let empty = arr[2..<2]
print(empty)
print(empty.isEmpty)

Wycinanie i sumowanie

Ponieważ wycinek nadal jest zgodny z tymi samymi protokołami, można wywoływać na nim bezpośrednio metody takie jak reduce.

let values = [2, 4, 6, 8, 10]
let sum = values[1..<4].reduce(0, +)
print(sum)

Dlaczego wycinki są ważne

Wycinki umożliwiają pracę z fragmentami dużych tablic bez kosztu kopiowania. Jest to przydatne w algorytmach takich jak wyszukiwanie binarne lub okna przesuwne.

let series = Array(1...20)
let firstHalf = series[..<10]
let secondHalf = series[10...]
print(firstHalf.count, secondHalf.count)

Szybkie sprawdzenie

Proszę sprawdzić zrozumienie wycinania za pomocą zakresów.

Podsumowanie

Indeksowanie tablicy za pomocą zakresu zwraca ArraySlice, który współdzieli pamięć z nadrzędną tablicą. Zakres półotwarty ..< wyklucza górną granicę, zakres domknięty ... ją uwzględnia, a zakresy jednostronne tanio pobierają prefiks lub sufiks.

let r = [10, 20, 30, 40]
print(r[1..<3])
print(r[1...])
print(r[..<2])

Często zadawane pytania

Czy lekcja „Tworzenie wycinków za pomocą zakresów” jest bezpłatna?

Tak — pełny tekst „Tworzenie wycinków za pomocą zakresów” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Tworzenie wycinków za pomocą zakresów”?

Wydobywanie podsekwencji bez kopiowania. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Swift Academy?

Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Tworzenie wycinków za pomocą zakresów”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?

Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie wycinków za pomocą zakresów
  2. Semantyka indeksów ArraySlice
  3. Konwertowanie wycinków z powrotem na tablice
  4. prefix, suffix i dropFirst
← Powrót do Swift Academy