Guard

작성일

Guard

기본적인 사용법은

guard <조건식 또는 표현식> else {
  <조건식 또는 표현식의 결과가 false일 때 실행될 코드>
}

이런 방식이고, 전체 구문을 조기 종료하기 위한 목적으로 사용되는 구문이다.

func divide(base: Int) {
  let result = 100 / base
  print(result)
}

라는 구문이 있으면, 입력받은 값을 이용해서 100을 나누는 함수인데, 무슨 값이든 0으로 나누어서는 안된다. 따라서 이렇게

func divide(base: Int) {
  
  guard base != 0 else {
    print("연산할 수 없습니다.")
    return
  }

  let result = 100 / base
  print(result)
}

이런 방식으로 미리 오류를 방지해주는 역할을 해줄수 있는 것이다.
대신 주의할 점이 있는데,

func didve(base: Int) {

  if base == 0 {
    print("연산을 처리할 수 없습니다.")
    return
  }

  let result = 100 / base
  print(result)
}

guard 구문에서는 나누기 연산을 위해 충족되어야 하는 조건을 사용했다면,
if 구문에서는 반대로 연산이 실패할 조건을 사용하여 함수를 종료하도록 처리하고 있다.

장점은, 코드를 중첩해서 사용하지 않아도 된다는 장점이 있다.

func divide(base: int) {
  guard base != 0 else {
    print("연산할 수 없습니다.")
    return
  }
  guard base >= else {
    print("base는 0보다 커야 합니다.")
    return
  }
  guard base < 100 else {
    print("basesms 100보다 작아야 합니다.")
    return
  }
  let result = (100 / base)
  print(result)
}

이런 방식으로, 조건을 체크하여 실행 흐름을 종료 시킬 때에는 guard 구문을 사용하는게 좋다.