목록Study/Swift (19)
조앤의 기술블로그
옵셔널 체이닝(Optional Chaining)이란, 사슬(chain)이 연결된 것처럼 옵셔널이 연달아 호출된 것을 의미합니다. 결론적으로, - 옵셔널 체이닝의 결과는 항상 옵셔널 입니다. - 옵셔널 체이닝이 포함된 표현식 중에서 하나라도 nil을 return한다면, 이어지는 표현식을 평가하지 않고 nil을 return합니다. [예제] Struct Contacts { var phone: [String: String] var address: String func printAddress() { return print(address ?? "No address") } } Struct Student { var name: String var contacts: Contacts var studentNum: Int in..
옵셔널 바인딩이란 옵셔널을 안전하게 처리하는 방법입니다. 옵셔널 값은 랩에 쌓여 있어서, 사용하기 위해서는 unwrapping하는 과정이 필요합니다. !키워드를 사용하여 forced unwrapping을 할 수 있습니다. 하지만 이 경우에는 crash가 발생할 위험이 있으므로 (옵셔널이 nil값을 가질 때) 사용에 주의해야 합니다 하지만 그렇다고 해서, 이렇게 코드를 작성하지는 않습니다. if num != nil { print(num!) } else .... //이렇게 코드를 작성하지는 않습니다. 대신 옵셔널 바인딩(optional binding)을 사용합니다. if문, while문, guard문에서 사용합니다. 기본 syntax입니다. //if 문 if let name: Type = OptionalEx..
Swift 언어의 가장 큰 특징 중 하나로, 값이 있을 수도 있고, 없을 수도 있는 것을 Optional 이라고 합니다. 예를 들어, 파일에서 읽어온 상수를 문자열에 저장한다고 할 때. - 파일에 값이 있을 수 있다. - 파일에 읽을 값이 없을 수 있다.(nil) '?' 키워드로 나타냅니다. 그리고 값이 없는 상태를 nil 이라고 나타냅니다. 옵셔널은 값이 없고, 추론할 형식이 없기 때문에 선언할 때 type을 지정해주어야 합니다. let str: String? = nil 옵셔널로 정의한 변수는 옵셔널이 아닌 변수와는 다릅니다. let optionalStr: String? = "abc" let requiredStr: String = optionalStr // 컴파일 에러 Optional 값은 '랩으로 포..