Rust · Drop

정리는 자동이지만, 이른 정리는 값 자체를 넘긴다

Drop::drop은 스코프 종료 시 컴파일러가 호출하고, std::mem::drop은 값을 소비해 더 이른 시점에 정리를 시작합니다.

automatic

스코프 종료 정리

1

값 생성

자원 소유자가 스코프 안에서 사용됩니다.

2

역순 정리

나중에 만든 값부터 drop이 실행됩니다.

3

한 번만 호출

소유권 시스템이 유효 참조와 단일 정리를 함께 보장합니다.

early

명시적 이른 정리

1

값을 소비

drop(c)는 값을 인수로 받아 소유권을 가져갑니다.

std::mem::drop(c)
2

즉시 정리

락이나 파일 핸들처럼 빨리 놓아야 할 자원을 해제합니다.

3

재사용 불가

소비된 값은 이후 코드에서 다시 사용할 수 없습니다.

Drop::drop

타입이 정리 로직을 정의하는 메서드입니다.

drop(value)

값을 소비해 스코프 끝보다 먼저 정리합니다.

직접 호출 금지

value.drop()은 중복 정리 위험 때문에 허용되지 않습니다.