Swift

Swift - Optional(옵셔널)

iosos 2023. 6. 28. 18:59

* Optional (옵셔널)

- 값이 있을 수도 있고 없을 수도 있는 변수나 상수를 나타내는 기능 

- 안전성과 신뢰성을 높이기 위해 도입됨 

- 값이 있다면 "해제되었다(unwrapped)", 값이 없다면 "nil" 이라는 값이 할당 됨 

- 옵셔널은 값이 없을 수도 있기 떄문에 값을 사용하기 전에 옵셔널이 해제되어 실제 값을 가지고 있는지 확인해야 함 

     -> 이를 통해 예기치 않은 nil 값으로 인한 오류를 방지할 수 있음

 

 

* 옵셔널 변수 설정 

 

 

 

옵셔널 해제 방법

 

1. 강제 언래핑(Forced Unwrapping)

- 옵셔널의 값을 강제로 추출하는 방법

- 옵셔널 변수 또는 상수의 뒤에 느낌표(!)를 붙여서 사용

- 옵셔널 값이 nil인 경우, 런타임 오류가 발생함

 

 

 

 

2. 옵셔널 바인딩 (Optional Binding)

- 옵셔널의 값을 안전하게 추출하고 사용하기 위한 방법 

- 'if let' 또는 'guard let' 문을 사용하여 옵셔널의 값이 있는지 확인하고 있다면 값을 상수 또는 변수에 바인딩하여 사용 

- 'optionalValue' 가 옵셔널일 때, 'if let' 문을 사용하여 옵셔널 값이 있는지 확인하고, 있다면 상수에 값을 할당하여 안전하게 사용하고 없다면 else 블록에서 처리 

- 'guard let' 문은 조건이 만족하지 않으면 'else' 블록 내의 코드가 실행되어 종료나 에러 처리를 수행

- 'guard let' 문은 코드의 가독성을 높이고 조건을 만족하지 않는 경우 빠르게 종료할 수 있어 유용함 

 

 

 

3. 옵셔널 체이닝 (Optional Chaining)

- 연속된 옵셔널 값의 속성이나 메서드를 호출하는 방법 

- 옵셔널 값이 nil인 경우에도 안전하게 호출할 수 있음 

- 호출하려는 속성이나 메서드 뒤에 물음표(?)를 붙여 사용

 

 

 

 

4. nil 합병 연산자 (Nil - Coalescing Operator)

- 옵셔널 값이 nil 일 때 기본 값을 사용할 수 있는 연선자 

- '??' 기호로 표시됨 

- 일반적으로 옵셔널 값이 nil인 경우에 대비하여 기본 값을 설정할 때 사용 

- 옵셔널 값이 nil이 아닌 경우에는 옵셔널 값을 그대로 사용하고, nil인 경우 우측에 제공한 기본 값을 사용