ownership call

함수에 값을 넘기면 소유권이 이동하거나 빌림으로 남는다

매개변수가 값을 받으면 callee가 새 소유자가 되고, 참조를 받으면 caller가 소유권을 유지한다.

01 callerString 소유

호출 전 사용 가능

02 takes_ownership(s)값 이동

caller는 s 사용 불가

03 return value소유권 되돌림 가능

새 바인딩 필요

04 borrow(&s)참조만 전달

caller 소유 유지

구분의미판단
T 전달move 또는 copyString은 move
&T 전달불변 대여읽기만 가능
&mut T 전달가변 대여한 번에 하나

핵심 함수 호출은 값 전달 문법 뒤에 소유권 이동 여부가 숨어 있다는 점이다.