본문 바로가기

DEV/Swift

[Swift] Closure (클로저)

/* Closure 클로저 */
// 중괄호로 묶인, 로직을 가진 코드 블럭이며 일급 객체 역할을 함.
// 일급 객체는 전달 인자, 변수 및 상수, 반환값 등에 쓰일 수 있음.
// 함수는 이름을 가진 클로저.
// { ([매개변수 목록]) -> [반환타입] in [코드]}

//함수 사용이라면
func add (num1:Int, num2:Int) -> Int {
    return num1+num2
}
add(num1: 3, num2: 4)

//같은 내용을 클로저로 변환하면 'func', 'add'를 지움
//값을 받을 변수 sum을 기입함
//중괄호 부터 시작, 반환타입과 코드 사이에 'in' 입력
var sum = { (num3:Int, num4:Int) -> Int in
    return num3+num4
}
sum(4,5)

// 반환타입과 'return'문구 생략도 가능
var sum2 = { (a:Int, b:Int) in
    a + b
}
sum2(10,20)
//축약문법은 이 외에도 많지만 너무 줄이게 된다면 오히려 알아보기 힘드므로 피할 것.