rust 문법 및 의미 10 참조 및 대여
2199 단어 rust
rust 문법 및 의미 10 참조 및 대여
references and borrowing 참조 및 대여
소유권 개념은 공식 설명에 따라 세 부분으로 나뉜다.
개술
작업 형식
성명
example
&T
참조(객체 불변)
&Vec
&mut T
참조(객체 가변)
&mut Vec
*
가변 객체에 대한 참조 액세스
{let y = &mut x; *y += 1;}
및
.참조 reference
&T // ( ) // e.g. &Vec
소유권이지
소유권이 아니다. immutable
,&mutT // ( ) // e.g. &mut Vec
대여 규칙
borrowing
도
보다 작아야 한다
.
아래:두 개 이상의 포인터가 같은 메모리 위치에 동시에 접근할 때, 그것들 중 적어도 한 개가 쓰고 있을 때 (그 1개
N
, 동기화되지 않을 때 '데이터 경쟁' 이 존재한다.그래서 왜 아래의 코드가 잘못되었는지 설명했다.
fn main() {
let mut x = 5;
let y = &mut x; // a mutable borrowing start here
*y += 1;
println!("{}", x); // a immutable borrowing try immut borrow
} // a mutable borrowing end here
가변 대여는 가변 참조를 생성하기 전에 역할 도메인에서 벗어날 수 있습니다.
fn main() {
let mut x = 5;
{
let y = &mut x; // a mutable borrowing start here
*y += 1;
} // a mutable borrowing end here
println!("{}", x); // a immutable borrowing
}
참조 라이프 사이클
인용은 인용한 값과 똑같이 오래 살아야 한다.그렇지 않으면 C처럼 메모리 유출을 일으킬 수 있다.
콩 지식
참고 자료
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cargo Watch 및 Docker를 사용하여 Rust에서 핫 리로드안녕하세요 여러분 👋🏻 오늘 저는 Docker Container를 사용하여 Rust의 변경 사항을 관찰할 수 있는 방법을 여러분과 공유하고자 합니다. 이것은 기사의 연속입니다 1 - 가장 먼저 프로젝트의 루트 디렉터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.