Rc — 참조 카운트 공유 포인터

Rc — 참조 카운트 공유 포인터

Rc<T>참조 카운트(reference counting) 로 값을 공유하는 스마트 포인터예요. 단일 스레드 안에서 여러 소유자가 같은 값을 공유할 수 있게 해줘요.

출처: Rust 공식 문서

본문

pub struct Rc<T, A = Global>
    where A: Allocator,
          T: ?Sized,
{ /* private fields */ }

Rc::new(x)로 만들고 clone()하면 참조 카운트가 늘어요. 마지막 Rc가 사라지면 값이 해제돼요. 스레드 안전하지 않아서 단일 스레드에서만 사용해야 해요. 다중 스레드가 필요하면 원자적 카운트를 쓰는 Arc를 사용해요. 내부 값은 불변으로 공유되고, 가변 접근이 필요하면 RefCell과 조합해요.

더 알아보기 (Learn more)

Rust 공식 문서