RUST · OWNERSHIP

함수 호출에서 소유권 이동과 반환

값을 함수에 넘기는 순간 소유권이 이동하면 호출자는 더 이상 그 값을 사용할 수 없습니다.

핵심 구조

move
caller ownss가 String을 소유
take(s)인자로 넘기며 move
callee owns함수 내부가 drop 책임
return s반환하면 호출자가 다시 소유
caller ownstake(s)callee ownsreturn s

판단 기준

check
Copy 타입정수처럼 Copy인 값은 이동 대신 복사됩니다.
Drop 시점소유자가 scope를 벗어날 때 자원이 해제됩니다.
반환 이전소유권을 돌려받으려면 값 자체를 반환해야 합니다.
참조 대안읽기만 필요하면 소유권 이동 대신 참조를 빌립니다.