• Home
  • About
    • Develop Woongs photo

      Develop Woongs

      make awesome woongs

    • Learn More
    • Facebook
    • Instagram
    • Github
  • Posts
    • All Posts
    • All Tags
  • Projects

Swift - guard vs if

14 Jan 2019

Reading time ~1 minute

When use to guard vs if

swift 개발에서 명심해야 할 사항이 하나 있다! 그건 바로 ! 강제 캐스팅 ! 은 치명적인 오류를 낳을 수 있다는 것이다. 가급적 아니, 아예 강제 캐스팅은 사용하지 말자.

그렇다면 숙명적으로 if 혹은 guard 또는 switch 구문을 사용해야 할 때가 온다. switch는 그렇다 치고 스위프트 초보인 나는 별 생각없이 if 혹은 guard를 사용하곤 했다. 아니 사실 처음에는 같은 것인데 후에 guard라는 구문이 추가되었구나 내키는대로 쓰면 되겠지. 라고 생각하기도 했었던 것 같다.

하지만 공부를 좀 해보면, 여러 예제나 코드들을 보면 알다시피 어느 곳에서는 guard가, 어디서는 if가 사용된다.

무슨 차이일까? 우선 그 차이부터 알아야 어디서 어떻게 써야할 지가 그려질 것이다.

내가 이해한 바로는 if는 단순히 특정 조건을 확인하는 방법으로, 없어도 상관 없을 때 사용하면 좋다.

guard는 특정 값이 반드시 있어야 할 경우에 사용해야 한다. 따라서 값이 없다면 어떻게 해야 할 지 정해줘야 한다.

공식 문서에서 Control transfer statements 로 불리우는

  • return
  • brerak
  • continue
  • throw

등을 사용해서 말이다.

이렇게 사용하는 것이

if는 ~ 상황 ‘이면’ … 해라 guard는 ~ 상황이 ‘아니면’ … 해라

로 읽히기 때문에 가독성 측면에서도 좋다.

예를 들어보자,



iosswift Share Tweet +1