옵셔널 해제 방법은 크게 두가지가 있습니다.
명시적 해제 - 강제 해제, 비강제 해제(옵셔널 바인딩)
묵시적 해제 - 컴파일러에 의한 자동 해제, 옵셔널의 묵시적 해제
//강제 해제
var number : Int? = 3 //3
print(number) //"Optional(3)\n"
print(number!) //"3\n" //!를 붙이면 강제 해제를 한다
//비강제 해제(옵셔널 바인딩)
if let result = number { //조건문을 이용하여 추출
print(result) //"3\n"
} else {
}
func test() { //guard문을 이용하여 true일때만 추출
let number: Int? = 5 //5
guard let result = number else { return }
print(result) //"5\n"
}
test()
//컴파일러에 의한 자동 해제, 비교연산자 이용하여 다른 값과 비교하면 컴파일러가 자동으로 옵셔널 값을 해제
let value : Int? = 6 //6
if value == 6 {
print("value가 6입니다.") //"value가 6입니다.\n"
} else {
print("value가 6이 아닙니다.")
}
//묵시적해제
let string = "12" //"12"
var stringToInt : Int! = Int(string) //12
print(stringToInt + 1) //"13\n"
'개발 > Ios(Swift)' 카테고리의 다른 글
IOS 스위프트(Swift) 문법 - 클래스 (0) | 2021.08.17 |
---|---|
IOS 스위프트(Swift) 문법 - 구조체 (0) | 2021.08.17 |
IOS 스위프트(Swift) 문법 - 옵셔널 (0) | 2021.08.16 |
IOS 스위프트(Swift) 문법 - 반복문 (0) | 2021.08.16 |
IOS 스위프트(Swift) 문법 - 조건문 (0) | 2021.08.16 |