/**
가드문(guard)
if문과 유사하게 쓰이는 guard문
guard : 감시하다.
swift 의 if문 보다 편한 if문 느낌
가독성이 좋음
return 문이 필요함
*/
func checkNumbers1(password: String) -> Bool{
if password.count >= 6 {
// 로그인 처리 코드 작성
return true
}else{
return false
}
}
func checkNumbers2(password: String) -> Bool{
// 감시하다 (else if를 먼저 실행한다라는 말과 비슷함)
guard password.count >= 6 else { return false }// early exit
//로그인 처리 코드 작성
//이런식으로 맞으면 내려가서 결국 다맞으면 true로 리턴하고 아니면 false 로 간다.
// guard true else {return false}
// guard true else {return false}
// guard true else {return false}
return true
}
/**
실제 프로젝트를 하면 빠르게 감이 옴.
*/
func check(words: String) -> Bool{
guard words.count >= 5 else {
print("5글자 이하입니다.")
return false
}
print("\(words.count)글자입니다.")
return true
}
check(words: "안녕하세요")
check(words: "헬로")
/**
가드문 사용이유
1. 가독성을 높임 / if문의 불편함을 해소
2. 여러개의 옵셔널타입을 안전하게 벗기기 가능
- code의 영역이 변경되지 않음(범위(Scope)에 대한 원칙에서 벗어나서 자유로운 코드작성)
- guard 문에서 선언된 변수를 아래문장에서 사용 가능 (동일한 범위(Scope) 취급)
*/