' if let '을 부정하는 방법 Swift 언어의 조건부 확인


우수 답변

조기 종료가 필요하므로 항상 guard를 사용할 수는 없습니다. 부정 된 if let 구조는 없지만 코드 스 니펫은 가장 많이 놓친 흥미로운 경우를 표시하지 않습니다.

코드가 실제로 필요하지 않은 경우 date if 이후에는 if let를 사용할 필요가 없습니다. 테스트 만하면됩니다. 표현식이 nil 인 경우 (참고 : 관련성과 간결성을 위해 Swift3 형식으로 단순화 된 코드) :

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

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

}

하지만 코드가 if 다음에 date를 사용하려면 (그렇지 않으면 이름을 지정하는 이유) 조금 더 어색한 것이 필요합니다. 결국 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")

}

정말 실망스러운 경우 그러나 나는 else if 체인에서 if let를 사용할 때입니다. 종종 (반에 가까운 시간?) 조건 체인의 논리는 일련의 부정적인 결과를 테스트하고 다른 경우가 하나의 긍정적 인 조건이되도록합니다. 그러나 조건 중 하나에 if let가 필요한 경우 논리를 긍정적 인 테스트로 표현해야하며 else 케이스는 부정적입니다.

의사 코드의 예 :

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

}

이것을 신속하게 구현하려면 if let result = parse()와 같이 구문 분석 테스트 중에 선택 사항을 풀어야합니다. 실패-실패-성공에서 실패-성공-실패로 논리를 왜곡해야합니다. 더 빠른 의사 코드를 사용한 예 :

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

}

네. 잠재적으로 if not let는 원래 논리를 허용합니다.

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

}

누군가는 신속한 진화를위한 제안서를 작성해야합니다.

Answer

  1. 무료 Apple 개발자 계정에 가입
  2. 오늘부터 이해 (2016 년 6 월 4 일) Swift 3.0에 대한 자습서는 공개 될 예정이므로 없습니다. 다음 주 WWDC에서. 저자가 Swift 3.0에 대한 새로운 책과 튜토리얼을 준비하는 데는 최소 3 개월이 걸립니다. 단, 최신 버전의 Swift로 책을 올리는 데 매우 부지런하고 적극적인 Erica Sadun은 예외입니다.
  3. {New} 오늘 (2016 년 6 월 13 일) Apple은 초보자가 Swift를 배우기에 매우 좋은 방법 인 iPAD 용 Playgrounds를 발표했습니다. 또한 Apple은 전체 언어 초보자를위한 또 다른 좋은 리소스 인 \_App Development with Swift\_라는 새로운 eBook을 출시했습니다.
  4. Swift 1.0에서는 어떤 것도 피하고 대부분은 멀리하세요. 2.0 및 2.1에 대한 정보를 확인하고 Swift 2.2 이상의 소스에서 정보를 찾으십시오. 또한 2015 년 11 월 이전의 최신 정보가 포함 된 자료는 피하십시오. 이는 Swift 3.0이 더 출시 된 후 몇 달 후에 변경 될 것입니다. 구문과 라이브러리가 크게 변경되어 이전 버전으로 작성된 자습서를 따르려는 시도가 어려울 수 있습니다.
  5. iBooks에서 Apple의 Swift 설명서 사본을받습니다. 이것들은 Swift 3.0의 최신 버전이어야합니다.
  6. 매뉴얼 찾아보기
  7. 이전에 다른 언어로 프로그래밍 한 적이 있다면 Apple 및 타사와 같은 Swift 특정 구성에 더주의를 기울이십시오. 소프트웨어 예제는 그것들을 사용할 것입니다.
  8. 열거
  9. 선택 사항
  10. 오류 검사
  11. 종결 (구문 및 간결한 내용은 파악하기 어려울 수 있음)
  12. 구조체 대 클래스 대 프로토콜 대 열거
  13. 프로토콜 지향 설계
  14. 참조 계수
  15. 문자열
  16. 제네릭
  17. Swift 라이브러리
  18. 언어의 기능적 측면 (폐쇄 및 라이브러리 관련)
  19. Swift에서 1-2 개의 eBook (또는 실제 책)을 탐색 및 / 또는 구매합니다. 좋은 책이 여러 권 있습니다.
  20. iOS 대 Mac OS 프로그래머를 기대하는 더 많은 정보와 튜토리얼이 있습니다.
  21. 게임이나 생산성에 더 관심이 있는지 확인합니다. 그중 하나에 더 집중하세요. 몇 권의 책과 게임 향상을 위해 작성된 튜토리얼이 있으며 어떤면에서는 게임이 배우기 더 쉬운 곳이라고 생각합니다.
  22. 애플 애플리케이션을 작성한 적이 없다면 걱정없이 Swift를 배우는 것이 좋습니다. Objective-C에 대한 많은 것. 면책 조항 : 저는 Objective-C를 매우 싫어합니다. Objective-C에 레거시 코드가 있다면 반드시 Objective-C와 Swift를 연결하고 상호 사용하는 방법에 대해 알아보십시오. Swift Tutorials는 여러분이 알아야 할 기초를 제공 할 것이며 많은 / 대부분의 Cocoa 라이브러리 / 프레임 워크가 모두 Objective-C로 작성 되었기 때문에 완전히 벗어날 수 없습니다.
  23. 신용 카드가있는 경우 친구에게 지불하거나 Lynda에서 가입하세요. com 을 한 달 동안 무료로 사용하고 Simon Allardice 및 기타 Swift에서 제공하는 모든 동영상을 시청할 수 있습니다 (필요한 경우 일반 프로그래밍 개념도 포함).
  24. Pluralsight. com .
  25. Apple Deve 사이트에서 모든 참조 문서와 x-Code에서 액세스하는 방법을 찾아보십시오. 바라건대, 이전에 X-Code를 사용했으면합니다. 그렇지 않다면 튜토리얼은 당신이 갈 수 있도록 충분한 정보를 제공했을 것입니다. 이것은 중요합니다.
  26. RayWenderlich로 이동합니다. com 및 가능한 모든 Swift 비디오 및 eBook을 시청하십시오. 모든 책을 보려면 여기에서 등록 및 / 또는 자료를 구입할 수 있습니다. 잘 쉬었다 고 고소하고 실제로 튜토리얼을 직접 수행하세요 . 이것이 핵심입니다.
  27. Swift에서 과거 Apple WWDC 동영상을 시청하세요. Apple Swift 설명서를 더주의 깊게 읽으십시오.
  28. 자신의 응용 프로그램을 작성해보십시오. 검토하거나 더 잘 배워야 할 장소가있는 곳이 표시됩니다.
  29. iTunes University / Stanford Course on iOS 개발을 Swift에서 따라 해보세요. 계속할 수 있는지 확인하십시오. 다른 사람들이 말하는 것과는 반대로 초보자를위한 과정이 아닙니다.
  30. YouTube에서 다양한 동영상 자습서를 많이 봤습니다. 나에게 대부분의 경우 그들에 대한 유일한 좋은 점은 그들이 자유 롭다는 것입니다. 앞서 설명한 튜토리얼과 비교해 보면 왜 시간을 낭비했는지 궁금 할 것입니다. 예외가 있지만이를 살펴 보는 데 많은 시간을 낭비하게됩니다. 사람들이 자신 만의 동영상을 만들고 싶어한다는 점에 감사합니다. 나는 이것을 한 번 시도했다. 그래서 저는 전문가들이 일을 명확하고 이해하기 쉽게 만드는 데 얼마나 많은 에너지를 쏟았는지 압니다.
  31. 이제 무료 Youtube 콘텐츠를 무시한 후 해당 동영상 몇 개를보고 누락 된 정보를 채우는 데 도움이되는지 확인 . 다른 관점을 갖는 것이 좋습니다.
  32. Swift 온라인 뉴스 레터를 구독하세요. RayWenderlich는 시작하기에 좋은 목록을 가지고 있습니다.
  33. 이 주제에 대한 나와 다른 게시물을 읽어보세요. 질문 / 답변을 병합하는 방법을 알아야 할 것 같습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다