Develop/iOS

Swift assert 와 guard

불로소득달인 2019. 5. 10. 17:42
반응형

Swift

 

assert
  • 디버깅 모드에서만 동작한다
  • 배포하는 애플리케이션에서는 제외된다.
  • 예상했던 조건의 검증을 위하여 사용된다.

사실 이부분이 맘에 든다. 여러 언어들은 검증을 위해 Log를 찍는데 이게 사실 코드를 더럽히는 주된 요인이다.

assert를 이용해서 debug를 하면 보다 더 정확하고 안전한 앱이 개발 될 수 있을 것 같다.

 

var num : Int = 1;

assert(num == 1, "num != 1"); // num이 1이 맞을경우는 무시, 1이 아닐경우는 "num != 1" 출력 후 중지

 

assert은 디버그를 보다 쉽게 할 수 있도록 해준다.

 

guard

 

  • 잘못된 값의 전달 시 특정 실행구문을 빠르게 종료
  • 디버깅 모드 외에 다른 조건에서도 동작된다.
  • guard는 else와 return, break가 꼭 있어야 한다.
  • 타입캐스팅, 옵셔널에서 자주 사용된다.
guard let tempValue = age,
    tempValue < 100, // tempValue값이 100보다 작고 0보다 크지 않다면 종료하라는 의미다.
    tempValue >= 0 else {
    	print("잘못 입력되었습니다.");
        return;
}

// tempValue값이 100 미만이 아니라면 return 처리
guard tempValue < 100 else {
    return;
}


//위 guard 문구가 아래 if문구와 같은 의미이다.
if tempValue < 100 {

} else {
    retrun;
}

 

 

반응형