[Swift] assert & guard

ds-k.mo·2022년 4월 29일
0

Swift

목록 보기
13/22

assert

  • 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력하게 할 수 있는 함수
  • 주로 디버깅 중 조건의 검증을 위하여 사용

guard

  • 조건문을 검사하여 그 다음에 오는 코드를 실행할지 말지 결정 하는 것
  • guard 문에 주어진 조건문이 거짓일때 구문이 실행됨 -> 방어 코드로 많이 사용

코드 예시

// assert

var value = 0
assert(value == 0)

value = 2
assert(value == 0, "값이 0이 아닙니다.")
 Assertion failed: 값이 0이 아닙니다.


// guard
/*
 guard 조건 else {
  // 조건이 false면 else 구문이 실행되고
 return or throw or break를 통해 이후 코드를 실행하지 않도록 만든다.
 }
 */

func guardTest(value : Int) {
    guard value == 0 else {return} // value가 0이 아닐 경우 코드 종료
    print("안녕하세요")
}

guardTest(value: 0) // 안녕하세요
guardTest(value : 2) // 아무 일도 없었다..


func guardTest2(value : Int?) {
    guard let value = value else {return} // value가 0이 아닐 경우 코드 종료
    print(value)
}

guardTest2(value : 2) // 2
guardTest(value : nil) // 함수가 종료, 

guard문을 활용하면 옵셔널 바인딩된 상수를 조건문 범위 바깥에서도 사용할 수 있다.

0개의 댓글