Swift/Swift 문법
[클로저 - 2] 클로저를 사용하는 이유
내일은개발천재🎵
2022. 12. 28. 21:48
왜 이름이 없는 함수, 클로저를 왜 사용할까?
- 함수를 전달하는 형태로 사용하기 때문에 이름이 필요 없다.
- 전달하는 형태란?
- 파라미터(input)으로 사용되는 것이다.
- 함수를 실행할 때 클로저 형태로 전달할 때, 파라미터에서 클로저를 정의한다.
- 파라미터로 전달하는 함수를 콜백함수라고 부른다.
- 전달하는 형태란?
- 사후적으로 정의하기 위해 사용한다.
- 내장함수의 매개변수를 클로저 형태로 정의하면, 개발자가 이를 커스텀할 수 있기 떄문이다.
- 파라미터로 전달되는 클로저는 기존 함수 내용이 모두 실행된 후 실행된다고 봐도 무관하다.
- 활용도가 늘어난다.
// 1) (클로저를 파라미터로 받는 함수)정의
func closureCaseFunction(a: Int, b: Int, closure: (Int) -> Void) {
let c = a + b
closure(c)
}
// 2) 함수를 실행할 때 (클로저 형태로 전달) -> 사후적 정의가 가능
closureCaseFunction(a: 5, b: 2, closure: { (n) in
print("이제 출력할께요: \\(n)")
})
closureCaseFunction(a: 5, b: 2) {(number) in
print("출력할까요? \\(number)")
}
closureCaseFunction(a: 5, b: 3) { (number) in
print("출력")
print("출력")
print("출력")
print("값: \\(number)")
}