리스트 a
Rc::new(Cons(5, ...))
공유될 실제 데이터는 힙에 있으며 카운트 1로 시작합니다.
여러 리스트가 같은 꼬리 리스트를 읽어야 할 때, 소유권을 이동하지 않고 참조 카운트를 늘려 공유 소유권을 표현합니다.
Rc::new(Cons(5, ...))
공유될 실제 데이터는 힙에 있으며 카운트 1로 시작합니다.
Rc::clone(&a)
깊은 복사가 아니라 a를 가리키는 소유 핸들을 하나 더 만듭니다.
Rc::clone(&a)
카운트가 3이 되어 a, b, c가 같은 꼬리를 읽습니다.
strong_count는 1입니다.
Rc::clone 후 카운트는 2입니다.
같은 데이터의 소유자가 하나 더 늘어 3이 됩니다.
Drop이 카운트를 줄이고 데이터는 아직 유지됩니다.
누가 마지막 사용자인지 컴파일 타임에 모를 때 공유 소유권을 둡니다.
비용클론마다 카운트 갱신이 있고, 값은 카운트 0에서 정리됩니다.
Rc 한계읽기 전용 공유입니다. 단독 변경 권한을 자동으로 만들지 않습니다.