
오늘은 Swift의 클로저(Closure) 문법에 대해 정리해보았습니다. 클로저는 Swift에서 매우 중요한 개념이며, 특히 iOS 개발에서 자주 사용되는 문법입니다.
클로저는 코드 블록을 하나의 독립적인 기능 단위로 사용할 수 있게 해주는 문법입니다. 함수는 사실 클로저의 특별한 한 형태라고 볼 수 있습니다.
let simpleClosure = { (parameters) -> ReturnType in
// 코드
}
1️⃣ 기본형 클로저
let numbers = [1, 2, 3, 4, 5]
let sortedNumbers = numbers.sorted(by: { (num1: Int, num2: Int) -> Bool in
return num1 > num2
})
2️⃣ 반환 타입 생략
let sortedNumbers = numbers.sorted(by: { (num1: Int, num2: Int) in
return num1 > num2
})
3️⃣ 파라미터 타입 생략
let sortedNumbers = numbers.sorted(by: { num1, num2 in
return num1 > num2
})
4️⃣ return 생략 (단일 표현식)
let sortedNumbers = numbers.sorted(by: { num1, num2 in num1 > num2 })
5️⃣ 축약 인자 이름 사용
let sortedNumbers = numbers.sorted(by: { $0 > $1 })
6️⃣ 연산자 함수
let sortedNumbers = numbers.sorted(by: >)
클로저는 자신이 정의된 컨텍스트의 상수와 변수를 캡처할 수 있습니다.
func makeIncrementer(forIncrement amount: Int) -> () -> Int {
var runningTotal = 0
let incrementer: () -> Int = {
runningTotal += amount
return runningTotal
}
return incrementer
}
let incrementByTwo = makeIncrementer(forIncrement: 2)
print(incrementByTwo()) // 2
print(incrementByTwo()) // 4
print(incrementByTwo()) // 6