Rust(비교)
| r13 vs r14 | ||
|---|---|---|
| ... | ... | |
| 30 | 30 | take_ownership(a); |
| 31 | 31 | println("{a}"); |
| 32 | 32 | } |
| 33 | fn | |
| 33 | fn take_ownership (a:u8) { | |
| 34 | 34 | } }}}이를 실행해도 컴파일 에러가 나는데 a를 함수에 넘긴 다음에 사용하려 하였기 때문이다. 이럴 때는 to_owned(), clone()등을 써서 값을 복사함으로서 해결할 수 있지만[* clone은 벡터, String등 실제 값을 가리키는 포인터를 복사하는 반면(shallow copy), toowned는 그 메모리 내용까지 복사한다.(deep copy)] 더 좋은 방법이 있다. |
| 35 | 35 | |
| 36 | 36 | 또한 Copy trait이 구현되어있다면, 함수에 넣을 시에 자동으로 값이 복사되어서 딱히 값을 복사하거나 할 필요가 없다. |
| ... | ... |