후행 클로저
함수에 대한 마지막 매개 변수가 클로저인 경우 Swift는 후행클로저 구문이라는 특수 구문을 사용할 수 있습니다.
클로저를 매개변수로 전달하는 대신 { }
안의 함수 바로 뒤에 전달합니다.
(후행 클로저 사용 시 가독성이 좋습니다)
func travel(action: () -> Void) {
print("나는 나갈 준비를 하고있다.")
action()
print("나는 도착했다!")
}
마지막 매개변수가 클로저이기 때문에 다음과 같이 후행 클로저를 travel()
구문을 사용하여 호출할 수 있습니다.
travel() {
print("나는 지금 차를 타고 이동중이다.")
}
위 코드에는 실제로 다른 매개변수가 없기 때문에 ( )
를 완전히 제거할 수 도 있습니다.
travel {
print("나는 지금 차를 타고 이동중이다.")
}
후행 클로저 구문은 Swift에서 아주 일반적으로 사용되기 때문에 익숙해져야 합니다!
클로저와 후행클로저를 비교해보려면 여기를 클릭해주세요.
왜 후행클로저를 사용해야 하나요?
후행 클로저 구문은 Swift코드를 더 쉽게 읽을 수 있도록 설계되었습니다.
먼저 간단한 예제를 들어보도록 하겠습니다.
func animate(duration: Double, animations: () -> Void) {
print("\(duration)초 의 애니메이션을 실행합니다.")
animations()
}
위 코드를 후행 클로저 없이 호출할 수 있습니다.
animate(duration: 3, animation: {
print("성공")
})
이 처럼 후행클로저후행 클로저 없이 호출하는 방법은 제일 일반적이고 많은 사람들이 후행 클로저를 사용하지 않습니다. 하지만 많은 Swift개발자들이 마지막에 있는 })
를 보고 '아 깔끔하지 않네' 라고 생각합니다.
후행 클로저를 사용하면 이 문제를 없애는 동시에 비어있는 animation
매개변수레이블 도 제거할 수 있습니다.
animate(duration: 3) {
print("성공")
}
어때요? 깔끔하죠?
후행클로저를 사용할지 말지 여부가 확실하지 않다면, 모든 곳에서 이 후행 클로저를 사용해보는 것이 좋습니다. 그러면 자연적으로 후행 클로저 사용법이 익숙해지게 되고 결정하기도 쉽게 되겠죠? 일단 익숙해지는 것이 제일 좋습니다 :)
후행 클로저 TEST : 문제를 풀려면 이곳을 클릭해주세요.
읽어주셔서 감사합니다🤟
'SWIFT > Grammar' 카테고리의 다른 글
Swift : 기초문법 [구조체 - Struct] (0) | 2021.02.26 |
---|---|
Swift : 기초문법 [#4 후행 클로저에 매개변수 사용 ] (0) | 2021.02.25 |
Swift : 기초문법 [#2 클로저를 함수로 전달] (0) | 2021.02.24 |
Swift : 기초문법 [#1 클로저 기본 - Closure] (1) | 2021.02.24 |
Swift : 기초문법 [매개변수 레이블 - Parameter Label] (0) | 2021.02.23 |