Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 다익스트라 이해
- CoreData Filter
- Swift 고차함수
- LightWeight Migration
- CoreData Concurrency
- CoreData
- persistentStoreCoordinator
- Persistent store Coordinator
- Swift
- 1009번
- iOS Static Library
- Swift LinkedList
- Raw value and Associated value
- NSPredicates
- Clean swift
- Swift closure
- expensive operation
- Associated Value
- dateFormatter
- 2022 부스트캠프
- 트레일링 클로저
- leetcode #01
- iOS Static Library 사용하는방법
- 스위프트 클로저
- NSManagedObject SubClass
- 일급 객체
- codability
- CoreData Stack
- NSSortDescriptor
- Java
Archives
- Today
- Total
하루를살자
Swift - Closure (2) : Trailing Closure 본문
트레일링 클로저는 함수의 마지막 인자 값이 클로저일 때 인자값 형식으로 작성하는대신 함수 의 뒤에 꼬리처럼 붙일수 있는 문법을 뜻한다.
이때 클로저가 그 함수의 마지막 인자 값일때만 트레일링 클로저를 사용할수 있고, 인자 레이블을 생략한 상태로 쓸수있다.
- 아래 함수 는 어떠한 프로그램을
num
번 만큼 실행하고completion
클로저의 로직의 결과 값으로 false 가 나올시 그 프로그램은 종료 시키는 함수이다.
func run (num : Int , completion : (Int) -> (Bool) ) {
for i in 1..<num {
if completion(i) != true {exit(1)}
print("\(i)번 실행 중.")
}
}
- 위 함수를 트레일링 클로저를 사용해서 호출 하면 아래와 같이 표현할수 있다.
run(num:5){ (number) in
return number < 3
}
//or
run(num:5){$0<3}
run (num:5){ ... }
에서 볼수 있듯이 인자값으로 사용되었던 클로저가 통째로 바깥으로 빼어진다음run()
메소드의 뒤쪽에 꼬리처럼 달라붙은 것을 알 수 있다.
중요한건 트레일링 클로저는 반드시 함수의 마지막 인자가 클로저 일때만 사용가능하다. (여러개의 인자가 클로저일때도 마지막 클로저에만 적용가능)
'Swift' 카테고리의 다른 글
[Swift] LinkedList (0) | 2022.08.05 |
---|---|
[Swift] Expansive DateFormatter : 어떻게 사용해야할까? (0) | 2022.06.09 |
Swift - Closure (1): 표현식 (0) | 2022.02.27 |
Swift 고차함수 (0) | 2022.02.05 |
Swift - Collection Types (0) | 2022.01.01 |
Comments