Rustの入門として、Reference Cycles Can Leak Memory(日本語版)のうち以下に示すコード(以下、本コード)をみていきます。 想定読者は、Rust初学者で特にTRPLを勉強中の方です。 私も勉強中の身なので、全く分かっていない部分が多くあります。誤っている箇所はご指摘ください。 use List::{Cons, Nil}; use std::rc::Rc; use std::cell::RefCell; #[derive(Debug)] enum List { Cons(i32, RefCell<Rc<List>>), Nil, } impl List { fn tail(&self) -> Option<&RefCell<Rc<List>>> { match *self { Cons(_, ref item) => Some(item), Nil => No