IT/Swift

Swift Closure

미닉길 2019. 5. 10. 00:06
반응형

안녕하세요. 도미닉입니다.

 

오늘은 클로저에 대해서 알아보겠습니다.

 

클로저는 이름 없는 함수라고 할 수 있습니다.

 

이름 없는 함수가 굳이 왜 필요한가? 라고 의문을 가질 수 있습니다.

 

이러한 클로저는 매개변수와 리턴 타입, 고차함수, 변수 등에 자유롭게 사용할 수 있습니다.

 

클로저의 기본 타입은 아래와 같습니다. 

 

  1. { (parameters) -> return type in
  2. statements
  3. }

 

함수와 비교하자면 앞에 func 함수이름 부분이 빠진 것만 빼면 크게 다르지 않은 것을 알 수 있습니다.

 

아래 소스는 sorted 함수에 매개변수로 클로저를 사용했습니다.

 

  1. reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in
  2. return s1 > s2
  3. })

 위에 소스는 아래와 같이 한 줄로도 표현할 수 있습니다.

 

reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in return s1 > s2 } )

 

이러한 식으로 계속 축약해나아갈 수 있는데 Apple 에서는 이러한 축약형보다 전체를 다 쓰는 위에 방식을 더 선호합니다.

반응형