본문 바로가기
Rust

[Rust] Rc<T> 참조 카운팅 스마트 포인터 예제 (38일자)

by 꾸압 2023. 1. 21.

 

<예제 코드_1>

enum List {
    Cons(i32, Rc<List>),
    Nil,
}

use List::{Cons, Nil};
use std::rc::Rc;

fn main() {
    let a = Rc::new(Cons(5, Rc::new(Cons(10, Rc::new(Nil)))));
    println!("count after creating a = {}", Rc::strong_count(&a));
    let b = Cons(3, Rc::clone(&a));
    println!("count after creating b = {}", Rc::strong_count(&a));
    {
        let c = Cons(4, Rc::clone(&a));
        println!("count after creating c = {}", Rc::strong_count(&a));
    }
    println!("count after c goes out of scope = {}", Rc::strong_count(&a));
}

 


 

<참조 1> https://rinthel.github.io/rust-lang-book-ko/ch15-04-rc.html

<참조_2>

 

 

댓글