Metoda contains
Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 76 z 86.
Podczas pracy z tablicami często trzeba sprawdzić, czy istnieje określona wartość, zanim wykona się jakąś czynność. Swift udostępnia metodę contains() dokładnie do tego celu. Zwraca ona true, jeśli element zostanie znaleziony, a w przeciwnym razie false.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// Mamy banany!To znacznie czytelniejsze rozwiązanie niż ręczne przeszukiwanie tablicy za pomocą pętli. Ta metoda działa z tablicami dowolnego typu, niezależnie od tego, czy zawierają ciągi znaków, liczby, czy inne wartości:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseCzęstym przypadkiem użycia jest sprawdzanie poprawności danych wprowadzonych przez użytkownika na podstawie listy dozwolonych wartości:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Poprawny wybórMetoda contains() działa również z ciągami znaków i pozwala sprawdzić, czy podciąg występuje w dłuższym ciągu znaków:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueWyzwanie
ŁatwyOtrzymasz dwa wiersze danych wejściowych:
- Lista dozwolonych nazw użytkowników rozdzielonych przecinkami (np.
admin,user,guest,moderator) - Nazwa użytkownika do sprawdzenia
Sprawdź, czy nazwa użytkownika znajduje się na liście dozwolonych. Jeśli tak, wypisz Access granted. Jeśli nie, wypisz Access denied.
Kroki:
- Wczytaj listę rozdzielonych przecinkami nazw użytkowników i podziel ją na tablicę ciągów znaków
- Wczytaj nazwę użytkownika do sprawdzenia
- Użyj metody
contains(), aby ustalić, czy nazwa użytkownika znajduje się na liście dozwolonych - Wypisz odpowiedni komunikat w zależności od wyniku
Podpowiedź: Użyj components(separatedBy:), aby podzielić ciąg znaków na tablicę. Na przykład:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")Spróbuj swoich sił
// Wczytaj listę dozwolonych nazw użytkowników rozdzielonych przecinkami
let allowedList = readLine()!
// Wczytaj nazwę użytkownika do sprawdzenia
let username = readLine()!
// TODO: Napisz swój kod poniżej
// 1. Podziel allowedList na tablicę za pomocą components(separatedBy:)
// 2. Użyj contains(), aby sprawdzić, czy username znajduje się w tablicy
// 3. Wypisz "Access granted" lub "Access denied" w zależności od wynikuTa 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