[TIL]클로저(Closure) 쉽게 알아보기

Eden·2024년 10월 30일
3

TIL

목록 보기
26/41
post-thumbnail

클로저

클로저는 일을 나중에 할 수 있도록 미리 저장해 두는 특별한 메모라고 생각을 하자.

  • 단순한 정보만 적어두는 것이 아니라, 메모를 만들던 때의 중요한 정보도 같이 기억함!
  • 나중에 필요할 때 이 메모를 꺼내서 일을 처리하는 것이다.

비유하기

  1. 친구한테 "올 때 메로나" 라고 카톡을 했다.
  2. 이 메모를 받은 친구는 그 때 카톡으로 받은 내용(메로나)을 기억하고 있다.
  3. 나중에 친구가 편의점(장소) 도착했을 때 카톡 내용을 떠올리고 내가 말한 메로나를 사오는 거다!

코드로 바꿔볼게

func 카톡(_ 물건: String) -> (String) -> String {
    return { 장소 in
        return "\(장소)에서 \(물건)을 사올게!"
    }
}

let 올때메로나 = 카톡("메로나")  // 메로나를 기억한 메모(카톡) 만들기
let 결과 = 올때메로나("편의점")  // 나중에 편의점에 가서 메로나 사기
print(결과)  // 출력: "편의점에서 메로나를 사올게!"

어떻게 돌아가나?

  1. 카톡("메로나")를 실행하면, 메로나를 사오라는 메모(카톡)가 만들어진다.
  2. 이 메모는 메로나를 사라는 정보를 기억하고 있다.
  3. 나중에 친구가 "편의점"에 갔을 때, 카톡 내용을 떠올리고 메로나를 사오는 일을 처리한다.

클로저가 하는 일

필요한 정보를 기억하는 메모(카톡)처럼 동작한다.
지금 당장 일을 하지 않고, 나중에 필요한 시점에 일을 처리할 준비를 해 두는 거라고 생각하면 된다.

profile
Just living the daydream, one moment at a time.
post-custom-banner

2개의 댓글

comment-user-thumbnail
2024년 10월 31일

만만치 않은 예시인데요

1개의 답글