Metody tablic
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 65 z 86.
Oprócz dodawania i usuwania elementów tablice Swift oferują kilka przydatnych metod, które ułatwiają pracę z kolekcjami.
Właściwość isEmpty sprawdza, czy tablica zawiera jakieś elementy:
var tasks = [String]()
print(tasks.isEmpty) // true
tasks.append("Buy groceries")
print(tasks.isEmpty) // falseAby usunąć wszystkie elementy naraz, użyj removeAll():
var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers) // []Metoda reversed() zwraca elementy w odwrotnej kolejności:
let letters = ["A", "B", "C"]
print(Array(letters.reversed())) // ["C", "B", "A"]Do sortowania użyj sorted(), aby uzyskać nową posortowaną tablicę, lub sort(), aby posortować tablicę w miejscu:
let scores = [85, 42, 97, 63]
print(scores.sorted()) // [42, 63, 85, 97]
var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices) // [2.5, 5.75, 9.99]Zauważ, że sorted() zwraca nową tablicę, pozostawiając oryginalną bez zmian, natomiast sort() modyfikuje bezpośrednio oryginalną tablicę.
Wyzwanie
ŁatwyNapisz funkcję processScores, która przyjmuje scores i zwraca sformatowany ciąg znaków zawierający informacje o wynikach.
Funkcja powinna przeanalizować tablicę i zbudować ciąg wynikowy zawierający trzy informacje.
Logika:
- Sprawdź, czy tablica jest pusta, używając
isEmpty - Jeśli jest pusta, zwróć
"No scores" - W przeciwnym razie pobierz posortowane wyniki (w kolejności rosnącej) oraz wyniki w odwrotnej kolejności
- Zwróć ciąg łączący oba wyniki
Parametry:
scores([Int]): Tablica wyników będących liczbami całkowitymi
Zwracana wartość: Ciąg znaków w formacie: "Sorted: [sorted_array], Reversed: [reversed_array]" lub "No scores", jeśli tablica jest pusta (String)
Przykład: Jeśli scores ma wartość [85, 42, 97, 63], funkcja powinna zwrócić:
"Sorted: [42, 63, 85, 97], Reversed: [63, 97, 42, 85]"Uwaga: Odwrócona tablica powinna być odwróceniem oryginalnej tablicy, a nie posortowanej.
Spróbuj swoich sił
func processScores(scores: [Int]) -> String {
// Napisz 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 FizzBuzz3Typy 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ściowe12Podstawy tablic
Deklarowanie tablicyDostęp do elementówModyfikowanie tablicMetody tablicPowtórka – lista produktówPowtórka – odwrócona tablicaKrotkiPoćwicz samodzielnie: Edytor online Swift