If Let을 이용한 언래핑
Coddy Swift 여정의 기초 섹션에 포함된 레슨 — 86개 중 12번째.
옵셔널 내부의 값에 안전하게 접근하기 위해, 우리는 if let을 사용합니다 — 이것은 옵셔널 바인딩(optional binding)이라 불리는 기술입니다. 이 방식은 옵셔널에 값이 있는지 확인하고, 값이 있다면 이를 임시 상수로 언래핑(unwrap)합니다.
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// 환영합니다, Swift_Dev여기서 if let은 username에 값이 있는지 확인합니다. 값이 있으므로, 그 값은 if 블록 내부에서만 존재하는 name으로 언래핑됩니다. 만약 username이 nil이라면, 대신 else 블록이 실행됩니다.
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// 나이가 제공되지 않음age가 nil이므로, 조건이 실패하고 else 블록이 실행됩니다. 이는 누락된 값을 직접 사용하려고 할 때 발생할 수 있는 충돌을 방지합니다.
챌린지
쉬움다음과 같은 변수가 제공됩니다:
var nickname: String? = "CoddyLearner"if let을 사용하여 nickname을 안전하게 추출(unwrap)하세요. 만약 값이 포함되어 있다면, Hello, [value]!를 출력하되 [value]는 추출된 닉네임이어야 합니다. 만약 nil이라면, No nickname set을 출력하세요.
치트 시트
if let(옵셔널 바인딩)을 사용하여 옵셔널을 안전하게 추출하고 그 값에 접근하세요:
var username: String? = "Swift_Dev"
if let name = username {
print("Welcome, \(name)")
} else {
print("No username found")
}
// Welcome, Swift_Dev옵셔널에 값이 포함되어 있으면, if 블록 내부에서만 존재하는 임시 상수로 추출됩니다. 옵셔널이 nil인 경우, else 블록이 실행됩니다:
var age: Int? = nil
if let unwrappedAge = age {
print("Age is \(unwrappedAge)")
} else {
print("Age not provided")
}
// Age not provided직접 해보기
var nickname: String? = "CoddyLearner"
// TODO: 아래에 코드를 작성하세요
// if let을 사용하여 nickname의 옵셔널을 안전하게 해제하세요
// 값이 포함되어 있으면 "Hello, [value]!"를 출력하세요
// nil이면 "No nickname set"을 출력하세요이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.