ownership transfer

대입은 타입에 따라 이동, 클론, 복사로 읽습니다

`String`처럼 힙을 소유하는 값은 기본적으로 이동하고, 깊은 복사는 명시적으로 요청해야 합니다.

이동

let s2 = s1;

포인터, 길이, 용량만 옮겨지고 `s1`은 더 이상 사용할 수 없습니다.

클론

let s2 = s1.clone();

힙 데이터까지 새로 복사합니다. 비용이 보이도록 코드에 드러납니다.

복사

let y = x;

`i32`처럼 `Copy`인 값은 스택에서 빠르게 복사되고 원본도 유효합니다.