- 옵셔널에 저장된 값을 사용하기 위해서는 값을 언레핑시켜야 한다.
- nil이 저장된 상태에서 값을 강제 추출시 크레쉬가 발생한다.
- 옵셔널 표현식을 언래핑하면 논 옵셔널 타입으로 추출된다.

let str : String = "Swift" // Non-optional Type
str = nil // 컴파일 에러, 항상 값을 가져야 하기 떄문이다.
let str2 : String? = nil // optional String 이라 읽는다. 값을 저장하지 않아도 되는 형식으로 된다.
let a : Int? = nil // optional Int
let b = a // Int타입이 아닌 optional Int다
Forced Unwrapping

print(num) // 래핑된 상태
print(num!) // !를 통해 강제로 랩핑을된 값을 추출하는방법
num = nil
print(num!) // 하지만 강제로 랩핑된 값이 nil이라면 에러가 발생된다.
if num != nil { // 값이 있을때만 아래 문장을 실행하기떄문에 위의 에러가 발생되지는 않는다.
하지만 크레쉬가 발생될 가능성 떄문에 강제 추출을 권장하진 않는다.
print(num!)
}
num = 123
let before = num // optional Int
let after = num! // 강제 추출하게되어 Int