[TIL] swift 문법종합반 1주차

Eden·2025년 5월 26일

클로저란?

Swift에서 이름 없는 함수처럼 동작하는 일급 객체 코드 블럭
변수에 저장하거나, 함수에 전달할 수 있음.

✅ 기본 문법

{ (매개변수) -> 반환형 in
    실행 코드
}

트레일링 클로저란?

Swift에서 함수의 마지막 매개변수가 클로저일 때,
함수 괄호 () 바깥에 클로저를 작성할 수 있는 문법입니다.

✅ 기본 문법

func greet(action: () -> Void) {
    action()
}

// 일반 클로저 호출
greet(action: {
    print("Hello")
})

// ⬇ 트레일링 클로저 문법
greet {
    print("Hello")
}

함수 vs 클로저 — 왜 클로저를 쓰는가?

항목함수클로저
이름있음없음(익명) or 변수에 저장
위치주로 전역 or 타입 내부변수, 인자, 지역에서 자유롭게
용도재사용 가능한 로직 정의일시적 작업 전달 or 캡처 용도
캡처불가가능 (외부 변수 기억)
문법명확간결, 유연

클로저의 "캡처"란?

클로저가 자신이 정의된 위치의 변수(외부 변수)
기억하고 사용할 수 있는 기능이에요.

즉, 함수랑 다르게 외부 값들을 "잡아두고" 나중에 써요!


✅ 예시

func makeCounter() -> () -> Int {
    var count = 0
    let counter = {
        count += 1
        return count
    }
    return counter
}

let myCounter = makeCounter()
print(myCounter()) // 1
print(myCounter()) // 2
print(myCounter()) // 3
profile
iOS Dev

0개의 댓글