Weak — 비소유 참조 Rc

Weak — 비소유 참조 Rc

Weak는 관리되는 할당(managed allocation)에 대한 비소유(non-owning) 참조를 갖는 Rc의 버전이에요. Weak 포인터의 upgrade를 호출해 할당에 접근해요.

출처: Rust 공식 문서

본문

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

Weak는 값 수명에 관여하지 않는 약한 참조예요. 보통 순환 참조(cycle)를 끊는 데 사용해요.

주요 메서드

// 값이 아직 살아 있으면 Some(Rc)을 반환하고, 아니면 None을 반환해요.
pub fn upgrade(&self) -> Option<Rc<T>>

// 할당에 대한 강한 참조 횟수를 반환해요.
pub fn strong_count(&self) -> usize

// 할당에 대한 약한 참조 횟수를 반환해요.
pub fn weak_count(&self) -> usize

WeakClone, Debug, Default, Drop, Send, Sync 등을 구현해요.

더 알아보기 (Learn more)