Jak zanegować ' jeśli pozwól ' sprawdzanie warunkowe w języku Swift


Najlepsza odpowiedź

Nie zawsze możesz użyć guard, ponieważ wymaga to wcześniejszego zakończenia. Nie ma zanegowanej konstrukcji if let, jednak fragment kodu tak naprawdę nie przedstawia interesującego przypadku, w którym najbardziej go brakowało.

Jeśli Twój kod naprawdę nie potrzebuje date po if, nie musisz używać if let, po prostu przetestuj if wyrażenie to nil (uwaga, kod uproszczony do składni Swift3-ish dla trafności i zwięzłości):

if UserDefaults.standard.objectForKey("first\_launch\_date") == nil {

UserDefaults.standard.set(date, forKey: "first\_launch\_date")

}

Ale zakładając, że Twój kod aby użyć date zgodnie z if (w przeciwnym razie po co miałbyś nadać mu nazwę), potrzebujesz czegoś bardziej niezręcznego, co kończy się w końcu coś w przypadku if:

let date: Date

if let existingDate = UserDefaults.standard.objectForKey("first\_launch\_date") {

date = existingDate

} else {

date = Date()

UserDefaults.standard.set(date, forKey: "first\_launch\_date")

}

Sprawa, która naprawdę rozczarowuje ja jednak używam if let w łańcuchu else if. Często (prawie w połowie przypadków?) Logika łańcucha warunków chce przetestować serię negatywów, kończąc na innym przypadku będącym jedynym pozytywnym warunkiem. Jeśli jednak jeden z warunków wymaga if let, to jesteś zmuszony wyrazić logikę jako test pozytywny, a inny przypadek jest ujemny.

Przykład w pseudokodzie:

if error {

failure

} else if unexpected-format {

failure

} else if parse-failed {

failure

} else if result is a {

handle result a

} else {

handle result b

}

Jeśli zaimplementowanie tego w swift obejmuje rozpakowanie opcjonalnego podczas testu analizowania, na przykład if let result = parse(), wtedy „ Musiałem wypaczyć logikę od niepowodzenia-niepowodzenia-sukcesu do niepowodzenia-sukcesu-porażki. Przykład z szybszym pseudokodem:

if error {

failure

} else if unexpected-format {

failure

} else if let result = parse() {

if result is a {

handle result a

} else {

handle result b

}

} else {

failure

}

Fuj. Potencjalnie if not let pozwoliłoby na oryginalną logikę:

if error {

failure

} else if unexpected-format {

failure

} else if not let result = parse() {

failure // unlike if let, result not available to this code block

} else if result is a { // however it would be to everything after

handle result a

} else {

handle result b

}

Ktoś powinien napisać propozycję szybkiej ewolucji.

Odpowiedź

  1. Zarejestruj bezpłatne konto programisty Apple
  2. Zrozum na dzień dzisiejszy (4 czerwca 2016 r.) Nie ma samouczków dla Swift 3.0, ponieważ zostanie on ujawniony na WWDC w przyszłym tygodniu. Przygotowanie nowych książek i samouczków dla języka Swift 3.0 zajmie co najmniej 3 miesiące. Wyjątkiem będzie Erica Sadun, która jest bardzo sumienna i proaktywna w przygotowywaniu swoich książek do najnowszej wersji Swift.
  3. {Nowość} Od dzisiaj (13 czerwca 2016 r.) Apple ogłosił Playgrounds dla iPADa, który wygląda na bardzo dobry sposób na naukę języka Swift dla początkujących. TAKŻE firma Apple wydała nowy eBook o nazwie \_App Development with Swift\_, który jest kolejnym dobrym źródłem dla początkujących użytkowników.
  4. Unikaj czegokolwiek w Swift 1.0 i trzymaj się z dala od większości informacje o 2.0 i 2.1 i spróbuj znaleźć informacje ze źródeł w wersji 2.2 Swift lub nowszej. Staraj się również unikać wszelkich materiałów zawierających najnowsze informacje sprzed listopada 2015 r. Zmieni się to za kilka miesięcy po udostępnieniu oprogramowania Swift 3.0. Wprowadzono kilka znaczących zmian w składni i bibliotekach, a próby wykonania samouczków napisanych w starszych wersjach mogą być trudne.
  5. Uzyskaj kopię podręczników Apple do języka Swift z iBooks. Powinny to być pierwsze zaktualizowane do Swift 3.0.
  6. Przeglądaj te podręczniki
  7. Jeśli programowałeś wcześniej w innych językach, zwróć większą uwagę na konstrukcje specyficzne dla Swift, takie jak Apple i inne firmy Przykłady oprogramowania prawdopodobnie będą ich używać.
  8. wyliczenia
  9. opcje opcjonalne
  10. sprawdzanie błędów
  11. domknięcia (składnia i conc eat mogą być trudne do zrozumienia)
  12. struktury a klasy a protokoły a wyliczenia
  13. projektowanie zorientowane na protokół
  14. liczenie odwołań
  15. ciągi znaków
  16. typy ogólne
  17. Biblioteka Swift
  18. funkcjonalne aspekty języka (związane z zamknięciami i biblioteką)
  19. Przeglądaj i / lub kup 1–2 eBooki (lub książki fizyczne) w Swift. Jest kilka dobrych książek.
  20. Jest dużo więcej informacji i samouczków napisanych, oczekując, że będziesz programować iOS kontra Mac OS.
  21. Określ, czy bardziej interesują Cię gry czy produktywność i skoncentruj się bardziej na jednym z nich. Jest kilka książek i samouczków napisanych z myślą o ucieczce z gier i myślę, że pod pewnymi względami gry są łatwiejszym miejscem do nauki.
  22. Jeśli nigdy nie pisałeś żadnych aplikacji Apple, proponuję nauczyć się Swift bez martwienia się. dużo o Objective-C. Zastrzeżenie: bardzo nie lubię Objective-C. Jeśli masz starszy kod w Objective-C, koniecznie idź i dowiedz się o łączeniu i wzajemnym korzystaniu z Objective-C i Swift. Samouczki Swift stanowią podstawę tego, co musisz wiedzieć i nie możesz od tego całkowicie uciec, ponieważ wiele / większość bibliotek / frameworków Cocoa jest napisanych w Objective-C.
  23. Jeśli masz kartę kredytową lub pay pal, zarejestruj się pod adresem Lynda. pl przez jeden miesiąc za darmo i oglądaj wszystkie możliwe filmy autorstwa Simona Allardicea i innych w Swift (oraz ogólne koncepcje programowania, jeśli ich potrzebujesz).
  24. Zrób to samo w Liczba mnoga. pl .
  25. Przeglądaj witrynę Apple Deve, aby znaleźć wszystkie dokumenty referencyjne i dowiedzieć się, jak uzyskać do nich dostęp z x-Code. Miejmy nadzieję, że korzystałeś już wcześniej z X-Code. Jeśli nie, samouczki powinny dostarczyć wystarczających informacji, abyś mógł zacząć. To ważne.
  26. Idź do RayWenderlich. com i oglądaj wszystkie filmy i e-booki Swift, jakie możesz. Aby zobaczyć wszystkie książki, możesz się tam zarejestrować i / lub kupić materiały. Pozwól, że jesteś wypoczęty i sam zrób samouczki . To jest kluczowe.
  27. Obejrzyj poprzednie filmy Apple WWDC w Swift. Przeczytaj uważniej podręczniki Apple Swift.
  28. Spróbuj napisać własną aplikację. Spowoduje to wyświetlenie miejsc, które musisz przejrzeć lub lepiej poznać.
  29. Spróbuj skorzystać z kursu iTunes University / Stanford na temat tworzenia aplikacji w systemie iOS w języku Swift. Sprawdź, czy możesz nadążyć. To nie jest kurs dla początkujących, w przeciwieństwie do tego, co powiedzą Ci inni.
  30. Obejrzałem wiele, wiele różnych samouczków wideo na Youtube. Dla mnie w większości jedyną dobrą rzeczą w nich jest to, że są wolne. Po porównaniu ich z samouczkami, które wymieniłem wcześniej, zdziwisz się, dlaczego marnujesz z nimi czas. Są wyjątki, ale spędzisz dużo czasu na ich przeglądaniu. Doceniam to, że ludzie chcą tworzyć własne filmy. Raz nawet tego próbowałem. Wiem więc, ile energii poświęcili profesjonaliści, aby uczynić rzeczy jasnymi i zrozumiałymi.
  31. Teraz, po odrzuceniu darmowych materiałów na YouTube, obejrzyj kilka z tych filmów i zobacz, czy pomogą one uzupełnić brakujące informacje, czy nie . Dobrze jest mieć inne perspektywy.
  32. Subskrybuj biuletyny internetowe Swift. RayWenderlich ma dobrą listę na początek.
  33. Przeczytaj kilka moich i innych postów na ten temat. Prawdopodobnie musisz dowiedzieć się, jak połączyć pytania / odpowiedzi.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *