Operatory sekwencji
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 75 z 86.
Swift udostępnia przydatne wbudowane właściwości i metody, które pozwalają szybko uzyskać informacje o tablicach bez pisania pętli. Te operatory sekwencji pomagają wykonywać typowe obliczenia przy użyciu minimalnej ilości kodu.
Właściwość count zwraca liczbę elementów w tablicy:
let scores = [85, 92, 78, 90]
print(scores.count) // 4W przypadku tablic liczbowych Swift oferuje metody pozwalające znaleźć najmniejsze i największe wartości. Metody min() i max() zwracają wartości opcjonalne, ponieważ pusta tablica nie ma minimum ani maksimum:
let temperatures = [72, 68, 75, 80, 65]
if let lowest = temperatures.min() {
print(lowest) // 65
}
if let highest = temperatures.max() {
print(highest) // 80
}Aby obliczyć sumę wszystkich elementów, użyj metody reduce. Łączy ona wszystkie wartości, zaczynając od wartości początkowej:
let prices = [10, 20, 30]
let total = prices.reduce(0, +)
print(total) // 600 to wartość początkowa, a + mówi Swift, aby dodawał każdy element do bieżącej sumy. Łącząc te operatory, możesz łatwo obliczyć średnią:
let grades = [85, 90, 78, 92]
let average = grades.reduce(0, +) / grades.count
print(average) // 86Wyzwanie
ŁatwyNapisz funkcję analyzeScores, która przyjmuje scores i zwraca ciąg podsumowujący statystyki dotyczące tablicy.
Użyj operatorów sekwencji, aby obliczyć liczbę, minimum, maksimum i średnią wyników, a następnie sformatuj je jako jeden ciąg podsumowujący.
Logika:
- Pobierz łączną liczbę elementów za pomocą
count - Znajdź minimalną wartość za pomocą
min() - Znajdź maksymalną wartość za pomocą
max() - Oblicz sumę za pomocą
reduce(0, +)i podziel ją przez liczbę elementów, aby uzyskać średnią - Zwróć sformatowany ciąg zawierający wszystkie statystyki
Parametry:
scores([Int]): Tablica wyników całkowitych (gwarantowane, że zawiera co najmniej jeden element)
Zwraca: Sformatowany ciąg zawierający statystyki (String). Format: "Count: X, Min: X, Max: X, Avg: X"
Przykład: Jeśli scores ma wartość [85, 90, 78, 92], funkcja powinna zwrócić "Count: 4, Min: 78, Max: 92, Avg: 86".
Uwaga: Średnia powinna być obliczana z użyciem dzielenia całkowitego (bez miejsc dziesiętnych).
Spróbuj swoich sił
func analyzeScores(scores: [Int]) -> String {
// Wpisz tutaj kod
}
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