Swift 공식문서 읽기...Day13

김민종·2021년 8월 30일
0

Swift Doc

목록 보기
13/26

Optional Chaining
옵셔널 체이닝은 프로퍼티, 메소드, 서브스크립트에 질의를 하면서 만약 값이 있다면 반환하고 없다면 nil을 반환하는 형태를 말한다. 만약 연결된 질문중 하나라도 nil값을 가지고 있다면 전체를 nil로 리턴한다.

Optional Chaining as an Alternative to Forced Unwrapping
옵셔널 체이닝은 옵셔널 값 뒤에 ?를 붙혀 사용한다. 강제 언래핑을 위한 !도 유사한 역할을 한다. 차이점이 있다면 만약 nil값이 있다면 강제언래핑은 런타임오류를 반환하지만 옵셔널은 nil값을 반환한다.
nil값이 반환될 수도 있기때문에 옵셔널 체이닝의 값은 항상 옵셔널 값이 된다. 이러한 옵셔널 리턴값을 통해 옵셔널체이닝이 정상실행되었는지 혹은 nil값이 반환되었는지 확인할 수 있다.

Defining Model Classes for Optional Chaining
옵셔널 체이닝은 단계가 아닌 여러단계로 사용할 수 있다.

Accessing Properties,Methods,subscripts Through Optional Chaining
옵셔널 체이닝을 통해 프로퍼티,메소드, 서브스크립트에 접근할 수 있다.

Linking Multiple Levels of Chaining
옵셔널 체이닝은 다중레벨로 연결될 수 있다. 하지만 상위값이 옵셔널이라고 해서 더해지진 않는다.
상위 값이 옵셔널인 경우 현재가 옵셔널이 아니더라도 옵셔널 값이 된다.
상위 값이 이미 옵셔널인 경우라고 해서 더 옵셔널해지진 않는다.
옵셔널 체이닝을 통해 값을 검색하거나 메소드를 호출하면 단계와 상관없이 항상 옵셔널을 반환한다.

옵셔널 체이닝은 다양한 메소드를 서로 연결해서 코드들을 좀더 효율적으로 사용하기 위해 사용되는 것같다. 서로 값을 옵셔널로 참조해 확인 후 연결을 통해 자칫 길어질 수 있는 코드를 짧게 하기에도 유용해 보인다.

profile
신입 ios개발자입니다!

0개의 댓글