Swift 에서 Optional 변수의 nil 체크

byron1st·2021년 9월 5일
0

Swift 배우기

목록 보기
2/3
container.loadPersistentStores { description, error in
	if let error = error {
                fatalError("Failed to load persistent stores: \(error)")
            }
        }

위 코드에서 Closure 함수의 파라미터인 errorError? 타입으로, Optional 타입이다. 그렇기에 errornil일 가능성이 있는데, 이를 체크하는 코드가 위와 같다.

이때, let errorerrorif 블록 안에서만 사용되는 로컬 변수며, if let error = error 에서 if는 이 로컬 변수 errornil이 아닐 경우, true, nil 일 경우 false로 처리한다.

또한, if let error = error 일 경우, let errorerror 변수는 Optional 이 자동으로 벗겨지게 된다. 그래서, if 문 밖에서 그냥 let err = error 하면 err 는 똑같은 Error? 타입이지만, if let error = errorerror는 explicit 한 Error 타입으로 변경된다.

즉, if let error = error {} 구문은 아래 코드를 축약해놓은 것이라고 할 수 있다.

if error != nil {
	let error = error!
}

그래.. 매번 저 코드 쓰는게 짜증나고 열받는 일이라는건 알겠는데, 그래도 Syntactic sugar 너무 많다... ㅠㅠ

profile
Fullstack software engineer specialized for Blockchain

0개의 댓글