본문 바로가기
공부/스위프트

[스위프트] 옵셔널 바인딩 단축하기

by 초코팅촉 2023. 12. 14.
728x90

원래 옵셔널 바인딩은 아래처럼 if let(var)문이나 guard let(var)문을 사용하여 할당하고 사용해야한다.

var name: String?
var age: Int?

let isLoadingDone: Bool = false

if isLoadingDone {
    name = "홍길동"
    age = 65
}

if let name, let age {
    print("\(age)세 \(name)님 반갑습니다")
} else {
    print("자료를 확인할 수 없습니다")
}

 

하지만 아래처럼 사용할 수도 있다.

// 다음과 같이 옵셔널 바인딩을 단축할 수 있다.
let tempName: String = name ?? "알 수 없는 이름"	// 기본값을 할당한다.
let tempAge: Int = age ?? 0			// 여기도 마찬가지로 기본값을 할당한다.
print("\(tempAge)세 \(tempName)님 반갑습니다")

var aaaName = tempName
var aaaAge = tempAge    
print(aaaName)			// 알 수 없는 이름
print(aaaAge)			// 0
print(type(of: aaaName))	// String
print(type(of: aaaAge))		// Double

6번째 줄부터의 내용처럼 다른 변수에 또 넣어서 쓸 수 있다.