[Swift] 옵셔널(Optional), 닐(nil)

팔랑이·2023년 6월 9일
post-thumbnail

23-04-21

옵셔널(Optionals)

swift에서는 다른 변수에는 없는 옵셔널 타입이 있다. 변수 또는 상수에 값이 할당되지 않은 상황을 컨트롤하기 위해 옵셔널을 이용해 안전하고 일괄되게 처리한다.

다음의 예를 통해 optionals가 값의 부재에 어떻게 대응하는지 알아보자.
이니셜라이저를 이용해 String자료형을 Int로 바꿔보는 예시이다.

let possibleNum = "123"
let convertedNum = Int(possibleNum)
// convertNum is inferred to be of type "Int?" or "optional int"

이니셜라이저가 작동하여 Int로 변하는 것이 아니라 optional Int를 반환한다. 이는 Int?라고 쓰기도 한다. 여기서 물음표의 의미는 convertedNum이 정수값을 가지고 있을 수도, 아무 값을 가지고 있지 않을수도 있다는 뜻이다. (Int가 있을 수도 있고 아무것도 없으면 없었지 Bool이나 String등 다른 자료형을 가질 수는 없다는 뜻이다.)



닐(nil)

nil을 사용해 옵셔널 변수를 값이 없는 상태로 지정할 수 있다.

var serverResponseCode: Int? = 404
// serverResponseCode contains an actual Int value of 404
serverResponseCode = nil
// serverResponseCode now contains no value
  • nil은 옵셔널 상수와 변수에만 사용할 수 있다. 사용하는 상수와 변수가 특정 조건에서 값이 없어야 한다면, 항상 옵셔널 변수로 선언하여 사용하는 것이 좋다.

옵셔널 변수에 디폴트값을 같이 설정해주지 않으면 변수가 자동적으로 nil로 설정된다.

var surveyAnswer: String?
// surveyAnswer is automatically set to nil
  • C의 nil과 Swift의 nil은 같은 개념이 아니다.

🌏 참고사이트
Swift Language Guide

profile
정체되지 않는 성장

0개의 댓글