본문 바로가기

Swift

[Swift] Closer 클로저 - rewind

코드의 블럭

일급 시민 (first - citizen

변수, 상수 등으로 저장, 전달인자로 전달이 가능

함수 : 이름이 있는 클로저

 

{  (매개변수 목록) -> 반환타입 in

     실행 코드

}

간단한 sum을 클로저로 구현.

sum은 (Int, Int) -> Int 형인 변수 그리고 클로저 코드 블럭을 sum에 넣는다. 

이의 응용으로 클로저는 주로 함수의 전달 인자로 자주 사용된다.

 

Closer 축약 문법

calculate 함수를 예로 들겠습니다.

method 매개 변수에 클로저 코드 블럭을 넣습니다. 



여기서 클로저 변수가 마지막 전달인자라면 매개 변수의 이름을 생략하고 소괄호 외부에 코드 블럭을 두어 구현할 수 있습니다.

 

반환 타입을 생략할 수도 있습니다. 이미 calculate 함수가 어떤 함수인지 알기 때문에 추론이 가능하기 때문이죠

 

추가 적으로 후행 클로저와 같이 사용 

매개 변수의 이름을 불필요하다면 $0, $1 .... 으로 표현할 수 있습니다. 

 

후행 클로저와 같이 사용! 

 

암시적 반환 표현! 클로저가 반환하는 값이 있다면 클로저의 마지막 줄의 결과 값은 암시적으로 반환값으로 취급! 

더 간결 하게!!

 

클로저의 축약 문법을 공부하였습니다.

여기서 이러한 문법들은 위와 같은 순서가 아니어도 각각 개별적으로 축약이 가능하며 이러한 축약은 남들이 이해하기 적당한 선에서 축약 문법을 사용하는 것이 좋습니다.

'Swift' 카테고리의 다른 글

[Swift] 프로퍼티 감시자 - rewind  (0) 2021.01.22
[Swift] Property 프로퍼티 - rewind  (0) 2021.01.22
[Swift] Class, Struct, Enum - rewind  (0) 2021.01.21
[Swift] 열거형 Enum - rewind  (0) 2021.01.21
[Swift] 클래스 Class - rewind  (0) 2021.01.21