digitsというリンクリストを使ってRustにカスタム数値ベースシステムを正常に実装しました。リンクリストの半分を再割り当てすると、参照されないチャンクはどうなりますか?
pub struct Digits<'a> {
mapping: &'a BaseCustom<char>,
digit: u64,
left: Option<Box<Digits<'a>>>,
}
私は、リンクリスト構造体の寿命を宣言し、BaseCustom
のインスタンスに直接リンクされてきました。リンクされたリストの半分を再割り当てすると、参照されていないチャンクはどうなるのですか?BaseCustom
のマッピングに関連付けられている生存期間はまだありますか?
例えば、私は「ハロー」のように見えるリンクリスト(私が使用します。この例のために左から右へと私のプロジェクトのように左から右ではない)
h -> e -> l -> l -> o
を持ってその後、私は再割り当てe
から別の文字セットへのリンクリスト参照。
h -> e l -> l -> o
\
-> d -> g-> e
コードではhelloの "llo"を使用していないので、そのメモリは自動的に解放されますか?各文字インスタンスにBaseCustom
の参照があるということは、プログラムが終了するまでメモリが保持されていることを意味しますか?
私はRustにガベージコレクタがないことを知っています。したがって、生涯の参照BaseCustom
は私を混乱させます。商品は必ずBaseCustom
の長さでなければならないと言いますか?それとも、ある時点で解放されているのですか?BaseCustom
は、それよりも寿命を長くする必要がありますか?
"寿命は規範的、記述的ではありません。"これは本にあるはずです。 – red75prime
@ red75prime "say it with me"というリンクをクリックすると、本に行くことができます:-) – Shepmaster
それは初版です。 – red75prime