정보를 표현할 때 값이 들어있는 상황도 있지만, 값이 없는 상황도 분명 존재한다. 예를 들어 사람들의 이름과 나이 그리고 직업에 대한 정보를 담는 상황을 가정해보자. 사람은 누구나 이름과 나이가 있다. 그렇기 때문에 어느 누구의 정보던 간에 이름과 나이는 항상 값이 존
고양이가 있다고 가정해보자. 고양이의 이름과 나이를 정보로 담았다. 고양이는 있을 수도, 없을 수도 있기 때문에 각각의 값을 옵셔널로 나타냈다. catName 변수를 콘솔에 출력하면, 값이 Optional 하고 괄호에 감싸져 있는 것을 볼 수 있다. 옵셔널 변수에 담긴
옵셔널 타입은 사용하기 전에 꼭 옵셔널 언래핑을 통해 값을 꺼내야 한다. 그렇지 않으면 컴파일러가 불평을 한다. 사용법이 간단하지만 동시에 가장 위험한 방법이기도한 forced unwrapping (강제 언래핑) 방법부터 알아보자.강제 언래핑으로 옵셔널 언래핑을 하려면
옵셔널 바인딩은, 한글로 의역하면 "선택적 결합" 으로 해석할 수 있다. 그런데 이렇게 이해하는 것보다는, "옵셔널을 언래핑했는데 값이 들어있으면 이 변수에 할당한다" 로 이해하는 것이 더 이해하기 쉽다. 바지속 주머니 안에 거스름돈이 300원 있을 수도 있고 없을 수
옵셔널 바인딩은 if-else문으로도 가능하지만, guard문으로도 가능하다. 다음은 guard문의 특성이다. if-else문은 if 부분만 따로 사용해도 되지만, guard문은 항상 else와 같이 사용해야한다. guard 뒤에 else가 붙지 않으면 컴파일러가 지적
coalescing은 하나로 합치다 라는 뜻이다. nil-coalescing은 한글로 "nil 병합 연산"이라고도 한다. nil-coalescing은 스위프트에서 옵셔널은 언래핑하는 방법 중 하나다. 언래핑하고자 하는 옵셔널 값을 ?? nil 병합 연산자 좌측에 놓고,
옵셔널 체이닝은 옵셔널 언래핑하는 방법이라기 보다는, 인스턴스에 옵셔널 프로퍼티에 접근할 때 옵셔널을 다루는 방법이다 .이해를 돕기 위해 코드와 함께 설명하겠다. Pet 구조체와 Person 구조체가 있다. 각각 name 상수가 있다. Person 구조체의 pet이라는
지금까지 알아본 옵셔널은 사용전에 옵셔널 바인딩이나 nil 병합 연산을 통해 언래핑을 해주어야했다. 옵셔널 중에는 옵셔널이지만 언래핑하지 않고도 사용할 수 있는 옵셔널이 있다. 바로 암시적으로 언래핑한 옵셔널이다. 암시적으로 언래핑한 옵셔널의 특성 및 사용 방법을 우선
스위프트의 옵셔널은 스위프트 스탠다드 라이브러리 (swift standard library)에서 확인할 수 있듯이 열열거형(Enum)으로 구현이 되어있다.이 Enum Optional<Wrapped>에는 두가지 케이스가 있는데, 하나는 값이 associated va
아래는 스위프트 스탠다드 라이브러리에서 Optional의 내부 구현 일부를 발췌한 내용이다. 보다시피, Optional은 enum 타입으로 정의되어 있다.