클로저는 호출 코드와 함께 필요한 환경 값을 보관한다
함수처럼 호출되지만 정의된 위치의 값을 빌리거나, 수정하거나, 옮겨서 나중에 실행할 수 있다.
여러 번 호출 가능
호출에 mut 필요
한 번만 호출 가능
| 구분 | 의미 | 판단 |
|---|---|---|
| 읽기만 함 | 불변 borrow | Fn |
| 캡처 값을 바꿈 | 가변 borrow | FnMut |
| 캡처 값을 소비 | move | FnOnce |
| 지연 실행 | 저장 후 나중에 호출 | 클로저가 유용한 지점 |
핵심 클로저의 종류는 문법 모양보다 캡처한 값을 어떻게 쓰는지로 결정된다.