본문 바로가기
Swift/기본

assert와 guard

by 밤새는탐험가 2024. 4. 9.

애플리케이션이 동작 도중에 생성하는 다양한 연산 결과값을

동적으로 확인하고 안전하게 처리할 수 있도록 확인 및 처리할 수 있다. 

 

 

Assertion

assert 함수는 디버깅 모드에서만 동작 

배포하는 애플리케이션에서는 제외된다. 

주로 디버깅 중 조건의 검증을 위하여 사용한다. 

 

조건이 맞지 않으면 동작을 중지하면서 에러 표시에 메시지가 나온다. 

 

나이를 확인하고 에러 발생하면 디버깅 창에서 에러창이 보이게 하는 

함수를 생성한다면?

 

 

 

 

 

빠른 종료

"guard"를 사용하여 잘못한 값의 전달 시 특정 실행구문을 빠르게 종료한다.

"guard"의 "else" 블럭 내부에는 특정 코드 블럭을 종료하는 지시어 (return, break 등)가

꼭 있어야 한다. 

타입 캐스팅, 옵셔널과도 자주 사용된다. 

 

func functionWithGuard(age: Int?) {
    
    guard let unwrappedAge = age,
          unwrappedAge < 130,
          unwrappedAge >= 0 else {
        print("나이값 입력이 잘못되었다.")
        return
    }
    
    print("당신의 나이는 \(unwrappedAge)세 입니다.")
}

functionWithGuard(age: 10)   // 당신의 나이는 10세 입니다.
functionWithGuard(age: -10)  // 나이값 입력이 잘못되었다.

 

 

'Swift > 기본' 카테고리의 다른 글

익스텐션  (0) 2024.04.12
프로토콜  (0) 2024.04.11
옵셔널 체이닝  (0) 2024.04.06
인스턴스의 생성과 소멸  (0) 2024.04.05
상속  (0) 2024.04.04