guard let
Coddy Swift 여정의 기초 섹션에 포함된 레슨. 86개 중 13번째.
if let은 옵셔널을 언래핑하고 값이 존재할 때 코드를 실행하는 반면, guard let은 반대 방식을 취합니다. 값이 없으면 조기에 종료합니다. 이는 특히 문제가 있는 경우를 먼저 처리하고 주요 로직을 깔끔하게 유지하려는 함수 내부에서 유용합니다.
func greet(name: String?) {
guard let unwrappedName = name else {
print("No name provided")
return
}
print("Hello, \(unwrappedName)!")
}
greet(name: "Taylor") // 안녕, Taylor!
greet(name: nil) // 이름이 제공되지 않음guard let 문은 name에 값이 있는지 확인합니다. 값이 없으면 else 블록이 실행되고 함수가 return과 함께 종료됩니다. 옵셔널에 값이 있으면 해당 값은 unwrappedName으로 언래핑됩니다. 그리고 if let과의 핵심적인 차이점은 언래핑된 변수가 블록 내부에서만이 아니라 함수의 나머지 부분에서도 계속 사용할 수 있다는 것입니다.
이 "early exit" 패턴은 오류 사례를 먼저 처리하므로 코드를 읽기 쉽게 유지하며, 주요 로직이 여러 if 문 안에 중첩되지 않도록 합니다.
챌린지
쉬움validateAge 함수가 선택적 age 매개변수를 받고 guard let을 사용하여 안전하게 언래핑하도록 작성하세요.
age가 nil이면 "Invalid age"를 반환하세요. 그렇지 않으면 언래핑된 age인 [value]를 사용하여 "Age: [value]"를 반환하세요.
매개변수:
age(Int?): 사람의 나이를 나타내는 선택적 정수
반환값: 입력값이 nil이면 "Invalid age"를 반환하고, 그렇지 않으면 언래핑된 값이 포함된 "Age: [value]"를 반환하는 문자열입니다.
예시: age가 25이면 "Age: 25"를 반환합니다. age가 nil이면 "Invalid age"를 반환합니다.
직접 해보기
func validateAge(age: Int) -> String {
// 여기에 코드를 작성하세요
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Swift 플레이그라운드