Day 4: スマートポインタ実践

課題概要

Box、Rc、RefCellを使った実践課題です。

課題

Exercise 1: Box

再帰的なデータ構造をBoxで実装:

// TODO: ConsListを実装
enum List {
    Cons(i32, ???),  // Boxが必要
    Nil,
}

Exercise 2: Rc (参照カウント)

複数の所有者を持つデータ構造を実装:

use std::rc::Rc;

// TODO: 複数のノードが同じデータを参照

Exercise 3: RefCell (内部可変性)

不変参照の内部で可変にする実装:

use std::cell::RefCell;

// TODO: 内部可変性パターン

提出物

  • 3つのExerciseの実装コード