[Swift] 클로저?? 정복하기

CHO·2023년 3월 3일
0

[Swift] 공부하기

목록 보기
8/13

클로저(Closure)이란?

-코드블럭이다.
-사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 중괄호 역할
-일급 객체의 역할을 할 수 있다

*일급객체는 전달인자로 보낼 수 있고, 변수 / 상수 등으로 저장 or 전달할 수 있고, 함수의 반환값이 될 수 있다

-참조타입이다
-함수는 클로저의 한 형태로 이름이 있는 클로저이다

클로저 사용 목적

코드를 효율적으로 작성하는데 큰 도움을 준다

고차함수

인풋으로 함수를 받을 수 있는 함수를 의미한다

고차함수?

: 고차함수란 다른 함수를 전달인자로 받거나 함수 실행의 결과값을 함수로 반환하는 것을 말한다
: 어떤 함수의 return 값이 함수가 될 수 있고, 이 return 된 함수를 인자로 받는 함수가 존재한다

: Swift에서의 일급객체가 되기 위해서는 ???
-객체가 런타임에도 생성 가능하다?
-객체를 인자값으로 전달할 수 있어야 한다
-객체를 반환값으로 사용할 수 있어야 한다
-데이터 구조 안에 저장할 수 있어야 한다

클로저 표현방식

{ (인자들) -> 반환타입 in
  로직 구현
}

클로저의 축약

  1. 타입 생략
  2. 반환 키워드의 생략
  3. 인자 이름 생략

참고자료
https://jusung.gitbook.io/the-swift-language-guide/language-guide/07-closures

https://seolhee2750.tistory.com/117

https://velog.io/@bovet/swiftiOS-Optional-Binding

https://medium.com/@jgj455/%EC%98%A4%EB%8A%98%EC%9D%98-swift-%EC%83%81%EC%8B%9D-closure-aa401f76b7ce

https://ios-developer-storage.tistory.com/entry/Swift-%EA%B3%A0%EC%B0%A8%ED%95%A8%EC%88%98-map-filter-reduce%EB%A5%BC-%EC%99%84%EC%A0%84-%EC%89%BD%EA%B2%8C-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90

profile
매일 개념 익히고 적용합니다

0개의 댓글