| ... | ... | |
|---|
| 19 | 19 | } |
|---|
| 20 | 20 | }}}를 실행하면 컴파일 에러가 난다.[* 런타임 에러가 아니다!] |
|---|
| 21 | 21 | ==== 함수에 넘기기 ==== |
|---|
| 22 | | 또한 어떤 함수에 인자로 값을 넘기면 그 값의 소유권은 만료된다.{{{#syntax rust |
|---|
| 23 | | fn main() { |
|---|
| 24 | | let a = "앙되 내가 함수의 인자로 들어감으로서 이 함수로 돌아오지 못하게 되었어." |
|---|
| 22 | 또한 어떤 함수에 인자로 값을 넘기면 그 값의 소유권은 만료된다.{{{#!syntax rust |
|---|
| 23 | fn main () { |
|---|
| 24 | let a = "앙되 내가 함수의 인자로 들어감으로서 이 함수로 돌아오지 못하게 되었어."; |
|---|
| 25 | 25 | 소유권은내것(a); |
|---|
| 26 | | println("{a}") |
|---|
| 26 | println("{a}"); |
|---|
| 27 | 27 | } |
|---|
| 28 | 28 | fn 소유권은내것 (a:&str) { |
|---|
| 29 | 29 | } |
|---|
| 30 | 30 | }}}이를 실행해도 컴파일 에러가 나는데 a를 함수에 넘긴 다음에 사용하려 하였기 때문이다. 이럴 때는 to_owned(), clone()등을 써서 값을 복사함으로서 해결할 수 있지만 더 좋은 방법이 있다. |
|---|
| 31 | 31 | ==== &참조자 ==== |
|---|
| 32 | 32 | 어떤 함수의 값을 넘길 때 |
|---|
| 33 | | {{{#syntax rust |
|---|
| 33 | {{{#!syntax rust |
|---|
| 34 | 34 | fn main() { |
|---|
| 35 | 35 | let a = "참조자를 사용함으로서 나는 여전히 살아있다고." |
|---|
| 36 | 36 | 소유권좀_빌려주세요(&a); |
|---|
| ... | ... | |
|---|