Metody zakresów
Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 9 z 56.
Zakresy są prawdziwymi Collection, więc mają ten sam zestaw narzędzi, którego używasz w przypadku tablic.
contains, count, first i last działają bezpośrednio:
let r = 1...10
print(r.contains(5)) // true
print(r.count) // 10
print(r.first!, r.last!) // 1 10Większość używanych przez Ciebie metod tablic również działa. filter zwraca tablicę, ponieważ wynik filtrowania zakresu sam w sobie nie jest zakresem:
let evens = (1...10).filter { $0 % 2 == 0 }
print(evens) // [2, 4, 6, 8, 10]Tak samo jest z reduce: zakresy mają tę metodę, a ty będziesz z niej korzystać do szybkiego obliczania sum i iloczynów.
Wyzwanie
ŁatwyWczytaj dwie liczby całkowite (dwa wiersze): n i target. Potraktuj przedział domknięty 1...n jako swój zbiór danych.
Wypisz trzy wiersze:
true, gdytargetnależy do przedziału, w przeciwnym raziefalse- Iloczyn wszystkich wartości w przedziale (
n!: silnia). Użyjreduce. - Wartości z przedziału, które są wielokrotnościami
3, połączone za pomocą,(lub pusty wiersz, jeśli żadna wartość nie spełnia warunku). Użyjfilter.
Dla wejścia 5 / 3 wynikiem jest:
true
120
3Spróbuj swoich sił
let n = Int(readLine()!)!
let target = Int(readLine()!)!
let r = 1...n
// TODO: contains(target), iloczyn za pomocą reduce, wielokrotności 3 za pomocą filter
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Dogłębnie o ciągach znaków
Liczba i indeksyWielkość liter i usuwanie białych znakówWyszukiwanie w ciągach znakówDzielenie i łączenieZastępowanie podciągówPodsumowanie — sprawdzanie nazwy użytkownika4Zbiory
Tworzenie zbiorówSuma i część wspólnaRóżnica i różnica symetrycznaPodzbiór i nadzbiórPowtórka — filtr tagów7Projekt – Śledzenie nawyków
Przegląd projektuOznacz jako wykonane10Projekt — silnik quizów
Przegląd projektuZadawanie pytań2Zakresy i kroki
Zakresy domknięte i półotwarteKrokMetody zakresówZakresy w instrukcji switchPowtórka — siatka kalendarza5Funkcje wyższego rzędu, część 1
MapFilterReduceŁączenie map, filter i reducePodsumowanie – statystyki słówPoćwicz samodzielnie: Edytor online Swift