Menu
Coddy logo textTech

Operator nil-coalescing

Część sekcji Podstawy ścieżki Swift w Coddy. Lekcja 14 z 86.

Czasami chcesz po prostu podać wartość domyślną, gdy wartość opcjonalna to nil, bez pisania wielu wierszy kodu. Operator nil-coalescing w Swift (??) robi dokładnie to. Rozpakowuje wartość opcjonalną, jeśli ma ona wartość, albo zwraca wartość domyślną, jeśli jest to nil.

let nickname: String? = nil
let displayName = nickname ?? "Guest"
print(displayName) // Guest

Ponieważ nickname ma wartość nil, operator zwraca zamiast tego "Guest". Jeśli nickname miałoby wartość, zostałaby użyta.

let username: String? = "SwiftCoder"
let greeting = username ?? "Anonymous"
print(greeting) // SwiftCoder

Operator nil-coalescing doskonale sprawdza się w jednolinijkowym kodzie, gdy potrzebujesz wartości zastępczej. Jest czytelniejszy niż zapis z użyciem instrukcji if let, gdy chcesz po prostu zastąpić nil wartością domyślną. Wynik zawsze jest wartością nieopcjonalną, więc możesz użyć go bezpośrednio, bez dalszego rozpakowywania.

challenge icon

Wyzwanie

Łatwy
Napisz funkcję getDisplayName, która przyjmuje opcjonalne username i defaultName, a następnie zwraca odpowiednią wyświetlaną nazwę za pomocą operatora łączenia nil.

Jeśli nazwa użytkownika jest pusta (reprezentuje ją pusty ciąg ""), potraktuj ją jako nil i zwróć domyślną nazwę. W przeciwnym razie zwróć nazwę użytkownika.

Parametry:

  • username (String): Nazwa użytkownika (pusty ciąg reprezentuje nil)
  • defaultName (String): Zapasowa nazwa do użycia

Zwraca: Nazwę użytkownika, jeśli nie jest pusta, a w przeciwnym razie defaultName.

Podpowiedź: Wewnątrz funkcji przechowaj nazwę użytkownika w zmiennej typu String?, a jeśli nazwa użytkownika jest równa "", ustaw tę zmienną na nil za pomocą prostego if. Następnie użyj ??, aby podać wartość zapasową.

Spróbuj swoich sił

func getDisplayName(username: String, defaultName: String) -> String {
    // Napisz kod tutaj
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Swift