13.3 Borrowing

대부분의 경우에 우리는 어떤 것에 대한 소유권을 취하지 않고 데이터에 접근한다. 이를 지원하기 위해 Rust에서는 대여(borrowing) 기법을 사용한다. 객체를 값(T)으로 전달하는 대신, 객체는 참조(&T)로 전달될 수 있다.

컴파일러가 정적으로 보장하기에(대여 검사자를 통해) 참조는 항상 유효한 객체 포인트이다. 그래서 객체에 대한 참조가 존재하는 동안에는, 객체는 소멸될 수 없다.

//
fn eat_box_i32(boxed_i32: Box<i32>) {
println!("Destroying box that contains {}", boxed_i32);
}
// i32
fn borrow_i32(borrowed_i32: &i32) {
println!("This int is: {}", borrowed_i32);
}
fn main() {
// i32, i32
let boxed_i32 = Box::new(5_i32);
let stacked_i32 = 6_i32;
// . ,
// .
borrow_i32(&boxed_i32);
borrow_i32(&stacked_i32);
{
//
let _ref_to_i32: &i32 = &boxed_i32;
// !
// `boxed_i32` .
// FIXME ^ .
// `_ref_to_i32` .
}
// `boxed_i32` `eat_box` .
eat_box_i32(boxed_i32);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

results matching ""

    No results matching ""