RUST · OWNERSHIP
함수 호출에서 소유권 이동과 반환
값을 함수에 넘기는 순간 소유권이 이동하면 호출자는 더 이상 그 값을 사용할 수 없습니다.
핵심 구조
move
caller owns
s가 String을 소유
take(s)
인자로 넘기며 move
callee owns
함수 내부가 drop 책임
return s
반환하면 호출자가 다시 소유
caller owns
→
take(s)
→
callee owns
→
return s
판단 기준
check
Copy 타입
정수처럼 Copy인 값은 이동 대신 복사됩니다.
Drop 시점
소유자가 scope를 벗어날 때 자원이 해제됩니다.
반환 이전
소유권을 돌려받으려면 값 자체를 반환해야 합니다.
참조 대안
읽기만 필요하면 소유권 이동 대신 참조를 빌립니다.