러스트의 소유권 원칙을 이해해야 하는 또 다른 영역인 함수도 살펴보자. 함수에 변수를 전달하면 기본 데이터의 소유권이 함수에 전달된다. 러스트에서는 이를 다루기 위한 서로 다른 방법이 있다.
• 소유권을 함수로 이동하고 함수에서 새 변수 반환하기
• 소유권을 유지하기 위해 변수의 참조 전달하기
코드 2-9는 함수로 String 객체를 수정하는 예이다. 함수의 매개변수로 변경 가능한 String을 전달한다. 이제 함수는 기본 데이터에 접근하고 수정할 수 있다. 함수가 완료되면 소유권을 다시 main 내부로 가져오므로 주소를 출력할 수 있다.
다음 플레이그라운드 링크(http://mng.bz/epBz)로 이 예제의 다양한 옵션을 시험해 볼 수 있다.