IT/Swift
Swift Closure
미닉길
2019. 5. 10. 00:06
반응형
안녕하세요. 도미닉입니다.
오늘은 클로저에 대해서 알아보겠습니다.
클로저는 이름 없는 함수라고 할 수 있습니다.
이름 없는 함수가 굳이 왜 필요한가? 라고 의문을 가질 수 있습니다.
이러한 클로저는 매개변수와 리턴 타입, 고차함수, 변수 등에 자유롭게 사용할 수 있습니다.
클로저의 기본 타입은 아래와 같습니다.
- { (parameters) -> return type in
- statements
- }
함수와 비교하자면 앞에 func 함수이름 부분이 빠진 것만 빼면 크게 다르지 않은 것을 알 수 있습니다.
아래 소스는 sorted 함수에 매개변수로 클로저를 사용했습니다.
- reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in
- return s1 > s2
- })
위에 소스는 아래와 같이 한 줄로도 표현할 수 있습니다.
reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in return s1 > s2 } )
이러한 식으로 계속 축약해나아갈 수 있는데 Apple 에서는 이러한 축약형보다 전체를 다 쓰는 위에 방식을 더 선호합니다.
반응형