Rust(비교)

r12 vs r13
......
2626==== 함수에 넘기기 ====
2727또한 어떤 함수에 인자로 값을 넘기면 그 값의 소유권은 만료된다.{{{#!syntax rust
2828fn main () {
29 let a = "앙되 내가 함수의 인자로 들어감으로서 이 함수로 돌아오지 못하게 되었어.";
30 소유권은내것(a);
29 let a:u8 = 0;
30 take_ownership(a);
3131 println("{a}");
3232}
33fn 소유권은내것 (a:&str) {
34}
35}}}이를 실행해도 컴파일 에러가 나는데 a를 함수에 넘긴 다음에 사용하려 하였기 때문이다. 이럴 때는 to_owned(), clone()등을 써서 값을 복사함으로서 해결할 수 있지만[* clone은 벡터, String등 실제 값을 가리키는 포인터를 복사하는 반면(shallow copy), toowned는 그 메모리 내용까지 복사한다.(deep copy)] 더 좋은 방법이 있다.
33fn 소유권은내것 (a:u8) {
34} }}}이를 실행해도 컴파일 에러가 나는데 a를 함수에 넘긴 다음에 사용하려 하였기 때문이다. 이럴 때는 to_owned(), clone()등을 써서 값을 복사함으로서 해결할 수 있지만[* clone은 벡터, String등 실제 값을 가리키는 포인터를 복사하는 반면(shallow copy), toowned는 그 메모리 내용까지 복사한다.(deep copy)] 더 좋은 방법이 있다.
3635
3736또한 Copy trait이 구현되어있다면, 함수에 넣을 시에 자동으로 값이 복사되어서 딱히 값을 복사하거나 할 필요가 없다.
3837
......