옵셔널 사용이 쉽지 않아 다시 정리를 해보려 한다.
nil
일 수도 있다let myOptional: String?
이 값은 String과는 완전히 다른 데이터 타입이다.let text: String = myOptional
이라고 text에 넣을 수 없다. !
붙여준다. let myOptional: String?
myOptional = "Lena"
let text: String = myOptional!
nil
값이 들어있다면? : 런타임 오류가 나기 때문. nil
이 아니면 강제 언랩핑을 해준다! let myOptional: String?
myOptional = nil
if myOptional != nil {
let text: String = myOptional!
} else {
print("myOptional was found to be nil")
}
if let safeOptional = myOptional {
let text: String = safeOptional
let text2: String = safeOptional
print(safeOptional)
} else {
print("myOptional was found to be nil")
}
:myOptional
에 값이 있는 경우 값을 출력, nil인 경우 else 구문 출력
let myOptional: String?
myOptional = nil
let text: String = myOptional ?? "나는 default value야"
print(text)
: nil
이면 "나는 dafault value야"
출력
nil
일지도 모르는 property, method, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정이다. nil
이라면 : property, method, 서브스크립트 등이 nil
을 반환한다. nil
을 반환한다. struct MyOptional {
var property = 123
func method() {
print("나는 struct의 method야")
}
}
let myOptional: MyOptional?
myOptional = MyOptional()
myOptional?.method()