/**
옵셔널 타입 사용하기
*/
var numD: Int?
var str: String? = "안녕하세요"
// 1. 강제로 벗기기
// 절대 사용하면 안됨.
print(str)
print(str!) // 일반적으로 사용하진 않음
//print(numD!) // 에러
// 2. if문을 활용하기
if str != nil {
print(str!)
}
if numD != nil {
print(numD!)
}
// 3. 옵셔널 바인딩 (if let 바인딩) 중요!! - 자주사용
// 실제로 사용하는 방법
if let s = str { // s라는 상수에 담긴다면
print(s)
}
if let n = numD {
print(n)
}
var optionalNameA: String? = "홍길동"
if let nameA = optionalNameA {
print(nameA)
}
// 실제 앱을 만들때 guard let 바인딩을 많이 사용
func aFunction(name: String?) {
guard let n = name else { return }
print(n)
}
aFunction(name: "he llo")
// 4. 닐 코얼레싱(Nil-Coalescing) 연산자를 사용하는 방법
// 코얼레싱 : 더 큰 덩어리로 합친다.
var serverName: String? = "서버명"
// 기본값을 제시함.(미인증사용자)
var userName = serverName ?? "미인증사용자"
var hello = "인사하겠습니다." + (str ?? "Say, Hi")
print(hello)
str = nil
print(str ?? "Say, Hi")
print(hello)