ほとんどの場合、所有権は非常に明確である:正確に値を持つ変数を知っています。しかし、いくつかの場合には単一の値は、複数の所有者であってもよいです。例えば、グラフデータ構造においては、複数のノードの同じ側を指してもよく、このノードは、すべてのエッジポイントを持っている概念です。何のエッジがそれに存在しなくなるまでのノードが前に洗浄するべきではありません。
マルチ所有権を有効にするには、錆が求めている Rc<T>
タイプ。題さ参照カウント(参照カウント)の略。参照カウントは、基準値のレコード数がこの値が使用中であるかどうかを知ることを意味します。なし有効な参照の代わりにゼロ基準の値は、クリーンアップすることができます。
列挙リスト{ 短所(I32、Rcの <リスト> )、 ナシ、 } クレートを使用::リスト:: {短所はnil}。 使用のstd :: RC :: Rcは、 メイン(){FN せ = Rcとを:: 新しい(短所(5、Rcは:: 新しい(反対(10、Rcは:: 新しい(NIL)))))。 println(!" = {}を作成した後にカウント"、Rcは:: strong_count(&A ))。 聞かせてB =短所(3、Rcは::クローン(&A )); println!(" = {} Bを作成した後、カウント"(&、Rcは:: strong_counta)参照)。 { せてC =短所(4、Rcは::クローン(&A ))。 println!(" Cを作成した後にカウント= {} "、Rcは:: strong_count(&A ))。 } のprintln!(" cはスコープの外に出た後} {=カウント"、Rcは:: strong_count(&A )); }