1. 클로저 Closure
- 코드의 블럭
- 일급 시민(first-citizen)
- 변수, 상수 등으로 저장, 전달인자로 전달이 가능
{ (매개변수 목록) -> 반환타입 in
실행 코드
}
예시
// sum이라는 상수에 클로저를 할당
let sum: (Int, Int) -> Int = { (a: Int, b: Int) in
return a + b
}
let sumResult: Int = sum(1, 2)
print(sumResult) // 3
2. 다양한 클로저 표현
- 후행 클로저 : 함수의 마지막으로 전달되는 클로저
- 클로저의 타입을 유추 가능한 경우 매개변수, 반환타입 생략 가능
- 반환 값이 있는 경우, 암시적으로 맨 마지막 줄 return 생략 가능
- 전달인자의 이름이 굳이 필요 없고, 컴파일러가 타입을 유추 가능한 경우 축약한 전달인자
- $0, $1, $2, ...
//축약 전
result = calculate(a: 10, b: 10, method: { (left: Int, right: Int) -> Int in
return left + right
})
//축약 후
result = calculate(a: 10, b: 10) { $0 + $1 }
print(result) // 20
'Swift' 카테고리의 다른 글
[Swift] 16. 상속 (0) | 2021.10.14 |
---|---|
[Swift] 15. 프로퍼티 Property (0) | 2021.10.07 |
[Swift] 13. 값 타입, 참조 타입 (0) | 2021.10.07 |
[Swift] 12. 열거형 (0) | 2021.10.06 |
[Swift] 11. 클래스 (0) | 2021.10.06 |
댓글