
23-04-21
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을 사용해 옵셔널 변수를 값이 없는 상태로 지정할 수 있다.
var serverResponseCode: Int? = 404
// serverResponseCode contains an actual Int value of 404
serverResponseCode = nil
// serverResponseCode now contains no value
옵셔널 변수에 디폴트값을 같이 설정해주지 않으면 변수가 자동적으로 nil로 설정된다.
var surveyAnswer: String?
// surveyAnswer is automatically set to nil
🌏 참고사이트
Swift Language Guide