| ... | ... | |
|---|
| 36 | 36 | 또한 Copy trait이 구현되어있다면, 함수에 넣을 시에 자동으로 값이 복사되어서 딱히 값을 복사하거나 할 필요가 없다.[* 그래서 사실 위의 예제를 실행해도 에러는 안난다. u8 type이 Copy trait을 구현하였기 때문] |
|---|
| 37 | 37 | |
|---|
| 38 | 38 | |
|---|
| 39 | | ==== &참조자 ==== |
|---|
| 39 | ==== 참조자 ==== |
|---|
| 40 | 40 | 어떤 함수의 값을 넘길 때 |
|---|
| 41 | 41 | {{{#!syntax rust |
|---|
| 42 | 42 | fn main() { |
|---|
| 43 | | let a = "참조자를 사용함으로서 나는 여전히 살아있다고." |
|---|
| 44 | | 소유권좀_빌려주세요(&a); |
|---|
| 43 | let a:u8 = 0 |
|---|
| 44 | borrow_me(&a); |
|---|
| 45 | 45 | println("{a}") |
|---|
| 46 | 46 | } |
|---|
| 47 | | fn 소유권은내것 (a:&&str) { |
|---|
| 47 | fn borrow_me (a:&u8) { |
|---|
| 48 | 48 | } |
|---|
| 49 | | }}}이렇게 함수에 넘길 때 참조자를 사용하면 소유권을 유지할 수 있다. [* 사실 &str은 이미 참조자가 붙어있어서 상관없긴 하지만 예시에 String::from을 넣으면 너무 길어서 간단하게 하려고 한 것이다.~~???:선생님 예시가 이상해요~~] |
|---|
| 50 | | |
|---|
| 49 | }}}이렇게 함수에 넘길 때 참조자를 사용하면 소유권을 유지할 수 있다. |
|---|
|
| 51 | 50 | ==== lifetime ==== |
|---|
| 52 | 51 | '''러스트의 난이도를 높히는 주범''' 포인터가 혜지된 메모리를 가리키는 것을 방지하려 만들었다. |
|---|
| 53 | 52 | |
|---|
| 54 | 53 | == 그 외 == |
|---|
| 55 | 54 | * 컴파일 언어이다. |
|---|
| 56 | 55 | * 컴파일 시간에 대부분의 런타임 에러를 잡아낸다. |
|---|