불변 캡처
출력처럼 읽기만 하면 클로저는 불변 참조를 잡고 주변 코드는 계속 값을 볼 수 있습니다.
클로저가 값을 빌리는지, 바꾸는지, 가져가는지를 본문 밖으로 이동되는
값과 Fn 계열 트레이트에 맞춰 읽습니다.
3
캡처 판정
Fn, FnMut, FnOnce를 호출
횟수와 값 이동 기준으로 나눕니다.
출력처럼 읽기만 하면 클로저는 불변 참조를 잡고 주변 코드는 계속 값을 볼 수 있습니다.
push처럼 값을 바꾸면 클로저 호출 전후의 가변 대여
범위를 먼저 확인합니다.
스레드에 넘기는 클로저는 move로 값을 가져가 새 실행
위치의 수명을 보장합니다.
unwrap_or_else는 필요할 때 한 번 호출하므로
FnOnce로 충분합니다.
sort_by_key는 여러 요소에 호출하므로
FnMut 조건을 요구합니다.