-1
소유권 시스템을 이해하려고합니다. 이를 테스트하려면, 내가 Vec
을 차용하는 기능을하고 싶었에 값을 추가하고 그 값 반환 값 : =
::
에 변경기능, 변경 가능한 차용
error: expected `::`, found `=`
--> src/main.rs:8:16
|
8 | let i: <i32> = test(&mut vec);
| ^
error: type `()` cannot be dereferenced
--> src/main.rs:2:5
|
2 | *v1.push(10);
| ^^^^^^^^^^^^
:
fn test(v1: &mut Vec<i32>) -> i32 {
*v1.push(10);
v1[3]
}
fn main() {
let mut vec: Vec<i32> = vec![10, 20, 30];
let i: <i32> = test(&mut vec);
}
나는이 두 가지 오류가 발생할 수를 도울 수 없으며 왜 그렇게 될지 이해하지 못합니다.
답장을 보내 주셔서 감사합니다. 이제 작동합니다. 나는 참고 문헌의 내용에 * 접속할 필요가 있다고 생각했다. –
먼저 불필요한 데레 인용은 계속 작동해야합니다. 대괄호를 사용해야하기 때문에'(* v1) .push (10)'이 아닌'* (v1.push (10)) '로 구문 분석됩니다. 이것은 C와 동일한 연산자 우선 순위입니다. – trentcl