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
Weak는 Clone, Debug, Default, Drop, Send, Sync 등을 구현해요.