Menu
CoddyTech

Operator nil-coalescing

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

Czasami chcesz po prostu podać wartość domyślną, gdy opcjonalna wartość to nil, bez pisania wielu linii kodu. Operator koalescencji nil w języku Swift (??) robi dokładnie to. Rozpakowuje opcjonalną wartość, jeśli jest dostępna, albo zwraca wartość domyślną, jeśli wynosi nil.

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

Ponieważ nickname ma wartość nil, operator zwraca "Guest". Gdyby nickname miało jakąś wartość, zostałaby ona użyta.

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

Operator koalescencji nil idealnie sprawdza się w jednolinijkowych wyrażeniach, gdy potrzebujesz wartości zastępczej. Jest czytelniejszy niż zapis instrukcji if let, gdy po prostu chcesz zastąpić nil wartością domyślną. Gdy wartość domyślna nie jest opcjonalna, wynik również nie jest opcjonalny, więc możesz użyć go bezpośrednio, bez dalszego rozpakowywania.

challenge icon

Wyzwanie

Łatwy
Napisz funkcję getDisplayName, która przyjmuje opcjonalne username oraz defaultName, a następnie zwraca odpowiednią nazwę wyświetlaną, używając operatora łączenia z nil.

Jeśli nazwa użytkownika jest pusta (reprezentuje ją pusty ciąg znaków ""), 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 znaków reprezentuje nil)
  • defaultName (String): Zapasowa nazwa, której należy użyć

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

Podpowiedź: Wewnątrz funkcji zapisz 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 {
    // Wpisz 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