FC 6장 - 4_Collection - Closure

Challenger·2021년 9월 12일
0
post-custom-banner

이름이 없는 매서드(함수)라고 생각하면 됨

  • in 키워드 앞에는 타입이 파라미터와 리턴, 뒤에는 statements가 온다
  • 출력 타입을 Void or ()으로 하면 return하지 않아도 괜찮지만, Int 혹은 String 같은 타입을 설정했을 경우에는 return해줘야 에러가 안 뜬다

이럴 때 주로 씀

  • Completion Block (뭔가 일이 끝나고 돌아갈 코드 블럭을 만들 때)
    : 네트워크를 통해 데이터를 받아올 때 데이터를 빨리 혹은 늦게 받아오게 된다
    비동기적으로 언제 끝날지 모르는 일일 경우. 해당 일이 끝났을 때 행동하도록
    데이터를 뿌려주거나 하는 등의 코드블럭 자체를 수행시킬 때 closure를 사용한다

  • Higher Order Functions (함수인데 인자를 함수로 받을 수 있는 함수를 만들 때)
    : input으로 함수를 받을 수 있는 유형의 함수. 한국말로 고계함수

  • map, filler 이런 게 고계함수 - 이런 것을 쓸 때 closure을 사용한다

Closure 기본 형태

Closure 실습 6개




Caputuring Values

바깥 scope에서는 안쪽 scope에서 선언한 변수 사용 불가능
안쪽 scope에서는 바깥 scope에서 선언한 변수 사용 가능


printClosure는 if문을 벗어나도 사용 가능 - name 컨스턴트도 사용 가능
closure에게 잡혀서 사용 가능
이것을 captured 됐다고 함

closure가 살아있는한 잡힌 변수는 scope를 벗어나도 사용 가능

profile
롤 챌린저의 100일 개발 도전기
post-custom-banner

0개의 댓글