옵셔널(Optional)
- 값이 있을 수도 있고 없을 수도 있다
- nil
- !, ?
- 옵셔널 바인딩
- 명시적 해제: 강제해제(!), 비강제해제(
if let
, guard
)
- 묵시적 해제: 컴파일러에 의한 자동 해제(비교연산자에 의해), !를 이용한 자동 해제(:type!)
옵셔널 선언
var name:String?
var optionalName: String? = "cobugi"
print(optionalName)
옵셔널 바인딩(명시적 해제)
var number: Int? = 3
print(number)
print(number!)
if let result = number {
print("result : ", result)
} else {
}
func test() {
let number: Int? = 5
guard let result = number else { return }
print(result)
}
test()
옵셔널 바인딩(묵시적 해제)
let value: Int? = 6
if value == 6 {
print("value가 6입니다.")
} else {
print("value가 6이 아닙니다.")
}
let string = "12"
var stringToInt: Int! = Int(string)
print(stringToInt + 1)