0Pricing
Swift Academy · 강의

여러 옵셔널 바인딩하기

하나의 조건문에서 여러 옵셔널을 언래핑합니다.

여러 옵셔널 바인딩하기은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

한 번에 여러 값 바인딩하기

쉼표로 구분하면 하나의 if let에서 여러 옵셔널을 언래핑할 수 있습니다. 본문이 실행되려면 모두 nil이 아니어야 합니다.

let a: Int? = 1
let b: Int? = 2
if let a, let b {
    print(a + b)
}

전부 아니면 전무

목록에 있는 옵셔널 중 하나라도 nil이면 전체 블록을 건너뜁니다. 전부 성공하거나 전부 실패하는 언래핑입니다.

let first: String? = "Ada"
let last: String? = nil
if let first, let last {
    print("\(first) \(last)")
} else {
    print("Missing a name")
}

기본 형식

전체 형식에서는 명시적으로 값을 할당합니다. if let a = optA, let b = optB처럼 작성합니다. 축약형에서는 중복되는 이름을 생략합니다.

let optX: Int? = 10
let optY: Int? = 20
if let x = optX, let y = optY {
    print(x * y)
}

바인딩과 조건 섞어 사용하기

불리언 조건과 바인딩을 번갈아 사용할 수 있습니다. 뒤에 나오는 조건에서는 앞에서 언래핑한 값을 사용할 수 있습니다.

let age: Int? = 25
if let age, age >= 18 {
    print("Adult: \(age)")
}

서로 의존하는 언래핑

각 바인딩이 왼쪽에서 오른쪽 순서로 언래핑되므로 뒤의 바인딩은 앞의 바인딩에 의존할 수 있습니다.

let dict = ["key": "42"]
if let text = dict["key"], let number = Int(text) {
    print(number + 8)
}

순서가 중요합니다

바인딩은 순서대로 평가되며 단락 평가가 적용됩니다. 첫 번째 바인딩이 실패하면 뒤의 바인딩은 전혀 평가되지 않습니다.

func parse(_ s: String?) -> Int? {
    print("parsing")
    return s.flatMap { Int($0) }
}
let a: Int? = nil
if let a, let b = parse("5") {
    print(a + b)
} else {
    print("skipped")
}

가드에서 여러 값 사용하기

쉼표로 구분하는 동일한 형식을 guard let에서도 사용할 수 있으며, 계속 진행하기 전에 여러 값을 언래핑할 수 있습니다.

func makeFullName(_ first: String?, _ last: String?) -> String {
    guard let first, let last else { return "Unknown" }
    return "\(first) \(last)"
}
print(makeFullName("Grace", "Hopper"))

변환 결합하기

여러 문자열 입력을 한 번에 파싱할 때 여러 값 바인딩이 매우 유용합니다.

let wInput = "4"
let hInput = "5"
if let w = Int(wInput), let h = Int(hInput) {
    print("Area: \(w * h)")
}

중첩된 if let 피하기

여러 값 바인딩을 사용하지 않으면 if let 블록을 중첩하여 피라미드가 만들어집니다. 쉼표 형식은 이를 평탄하게 만듭니다.

let p: Int? = 2
let q: Int? = 3
if let p {
    if let q {
        print(p + q)
    }
}

평탄하게 바꾼 버전

이전의 중첩 예제와 같은 논리를 하나의 여러 값 바인딩으로 평탄하게 작성한 코드입니다.

let p: Int? = 2
let q: Int? = 3
if let p, let q {
    print(p + q)
}

마지막 조건 추가하기

결합된 결과를 검증하는 불리언 검사로 마무리할 수 있습니다.

let xs = "3"
let ys = "9"
if let x = Int(xs), let y = Int(ys), x < y {
    print("\(x) is less than \(y)")
}

간단히 확인하기

여러 옵셔널 바인딩을 확인해 보십시오.

정리: 여러 옵셔널 바인딩하기

쉼표를 사용하면 하나의 if let 또는 guard let에서 여러 옵셔널을 언래핑할 수 있습니다. 전부 아니면 전무로 처리되고, 왼쪽에서 오른쪽으로 평가되며, 서로 의존하는 바인딩을 지원하고, 불리언 조건도 함께 사용할 수 있습니다.

let a: Int? = 1
let b: Int? = 2
if let a, let b { print(a + b) }

자주 묻는 질문

“여러 옵셔널 바인딩하기” 강의는 무료인가요?

네 — “여러 옵셔널 바인딩하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“여러 옵셔널 바인딩하기”에서 뭘 배우나요?

하나의 조건문에서 여러 옵셔널을 언래핑합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Swift Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“여러 옵셔널 바인딩하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. if let과 간결한 바인딩
  2. guard let으로 조기 종료하기
  3. 여러 옵셔널 바인딩하기
  4. switch와 for에서 옵셔널 패턴 사용하기
← Swift Academy(으)로 돌아가기