Closure ?
사용자 코드 안에서 { } 으로 구분 되어 있는 코드의 블럭이며, 일급 객체의 역할을 할 수 있다.
일급 객체는 전달인자, 변수/상수, 함수의 반환 값 등 여러방면에서 사용할 수 있다.
함수는 클로저의 한 형태로 이름이 있는 클로저를 함수라고 한다.
Ex)
let reverseNames = names.sorted(by: {(s1: String, s2: String) ->
Bool in return s1 > s2})
- sorted(by:) 의 경우는 이미 (String, String) -> Bool 타입의 인자가 들어오는 것이 정해져 있기 때문에 타입을 생략 할 수 있다.
let reverseNames = names.sorted(by: {s1, s2 in return s1 > s2})
- 또한 클로져는 인자 값을 축약해서 사용할 수 있다. ($0 부터 순서대로)
let reverseNames = names.sorted(by: { $0 > $1 })
- 인자로 클로저 넣기가 길다면 후행 클로저를 사용하여 함수 뒤에 표현할 수 있다.
- 마지막 인자가 클로저이고, 후행 클로저를 사용하면 ( ) 를 생략할 수 있다.
let reversedNames = names.sorted { $0 > $1 } let reversedNames = names.sorted { (s1: String, s2: String) -> Bool in return s1 > s2
'◽️ Programming > Swift 문법' 카테고리의 다른 글
Swift Structure와 Class의 공통점과 차이점 (0) | 2024.03.01 |
---|---|
Swift enum (0) | 2024.03.01 |
Swift Findig Substrings, 배열(Array) (0) | 2024.03.01 |
Swift Format Specifier , Escape Swequence 문자열 규칙 (0) | 2024.03.01 |
Swift (for 문 , enum , optional, unwrap) (0) | 2024.03.01 |