seong_hye, the developer

Swift) 문법 정리 - guard문 본문

IOS

Swift) 문법 정리 - guard문

seong_hye 2022. 7. 19.

 

코드를 작성할 수록 if문이 깊어져서 불편했던 경험 없으신가요?

if문이 깊어지게 되면 지속적으로 들여써야해서 코드의 가독성이 안좋아져요.

이를 위해 사용하는 것이 바로

guard문 입니다.


'guard: 감시하다' 라는 뜻으로

조건을 일찍 감시하고 코드가 진행될 수 있도록 도와준다.

조건이 틀린 경우는 진행하던 작업을 일찍 끝내버리고, 우리가 원하는 조건의 경우에만 진행하도록 해준다.

if문은 '~면 ~해라' 라는 뜻이라면, guard는 '~아니면 끝내라' 라는 의미기 때문이다.

따라서 guard문은 '빠른 종료'를 해주는 것이 핵심이다. 

guard 조건문 else {return}

//code

 

조건을 만족하지 않는 경우 -> else 

이른 판별 후, 조기 종료가 가능해졌다.

[ 함수에서는 return, throw / 반복문에서는 break, continue ]

조기종료: 조건을 만족하지 않을 때 실행하고, 종료 시킬 코드가 있어야 한다.

 

조건을 만족하는 경우 

코드가 다음 줄로 넘어가서 계속 진행된다.

일반적으로 조건으로 걸러낼 때 사용하게 된다.


예시

func checkMoney(money: Int?)-> String {
    //money가 옵셔널이라면 벗기는 작업
	guard let money = money else { return "돈이 없습니다" } 	

    print("\(money)만큼 돈이 존재합니다.")
}

if문보다 guard문을 사용하는 이유

 

가독성을 높이며 if문의 불편함을 해소한다.
여러개의 옵셔널타입을 안전하게 벗기는 것이 가능하다
- code 영역이 변경되지 않는다.
- guard 문에서 선언된 변수를 아래 문장에서 사용 가능하다.


참고자료)

https://zrr.kr/qNHN

 

앨런 Swift문법 마스터 스쿨 (온라인 BootCamp - 2개월과정) 강의 - 인프런

Swift문법을 제대로 이해, 활용해보고자 하는 철학을 바탕으로 과정이 설계되었습니다. 코딩에 대해 1도 모르는 비전공자를 시작으로 네카라쿠배에 입사할 수 있는 초고급 수준까지 올리는 것을

www.inflearn.com

 

'IOS' 카테고리의 다른 글

Swift) Alert vs Action Sheet  (0) 2022.07.19
Swift) AutoLayout vs Frame  (0) 2022.07.19
Swift) 문법 정리 - inout 키워드  (0) 2022.07.19
Swift)문법 정리 - 고차함수  (0) 2022.07.12
Swift) 문법 정리 - 클로저  (0) 2022.07.12
Comments