Skip to content

Commit

Permalink
Merge pull request #361 from m-cremer/master
Browse files Browse the repository at this point in the history
Update ch15-04-rc.md
  • Loading branch information
damoasda authored Feb 17, 2024
2 parents 97524cd + c9e70ca commit 863ad6b
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions src/ch15-04-rc.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ einzelner Wert mehrere Eigentümer haben kann. In Diagrammdatenstrukturen (graph
data structures) können beispielsweise mehrere Kanten auf denselben Knoten
verweisen, und dieser Knoten gehört konzeptionell allen Kanten, die darauf
verweisen. Ein Knoten sollte nur aufgeräumt werden, wenn keine Kanten darauf
zeigen und daher keine Eigentümer hat.
zeigen und er daher keine Eigentümer hat.

Du musst die mehrfache Eigentümerschaft explizit aktivieren, indem du den
Rust-Typ `Rc<T>` verwendest, was eine Kurzform für *Referenzzählung* (reference
Expand Down Expand Up @@ -44,7 +44,7 @@ sieht dies ähnlich aus wie in Abbildung 15-3:
<img alt="Zwei Listen die sich die Eigentümerschaft einer dritten Liste teilen"
src="img/trpl15-03.svg" class="center" />

<span class="caption">Abbildung 15-3: Zwei Listen `b` und `c` teilen sich
<span class="caption">Abbildung 15-3: Zwei Listen `b` und `c` teilen sich
die Eigentümerschaft über eine dritte Liste `a`</span>

Wir erstellen eine Liste `a`, die 5 und dann 10 enthält. Dann erstellen wir zwei
Expand All @@ -56,7 +56,6 @@ und 10.
Der Versuch, dieses Szenario mithilfe unserer Definition von `List` mit `Box<T>`
zu implementieren, funktioniert nicht, wie in Codeblock 15-17 gezeigt:


<span class="filename">Dateiname: src/main.rs</span>

```rust,does_not_compile
Expand Down Expand Up @@ -176,10 +175,10 @@ den Gültigkeitsbereich verlässt.
# Cons(i32, Rc<List>),
# Nil,
# }
#
#
# use crate::List::{Cons, Nil};
# use std::rc::Rc;
#
#
fn main() {
let a = Rc::new(Cons(5, Rc::new(Cons(10, Rc::new(Nil)))));
println!("Zähler nach der Erstellung von a = {}", Rc::strong_count(&a));
Expand Down Expand Up @@ -241,5 +240,4 @@ innere Veränderbarkeitsmuster und den Typ `RefCell<T>` erläutern, den man in
Verbindung mit `Rc<T>` verwenden kann, um mit dieser
Unveränderbarkeitsbeschränkung zu arbeiten.

[preventing-ref-cycles]:
ch15-06-reference-cycles.html#verhindern-von-referenzzyklen-umwandeln-von-rct-in-weakt
[preventing-ref-cycles]: ch15-06-reference-cycles.html#verhindern-von-referenzzyklen-umwandeln-von-rct-in-weakt

0 comments on commit 863ad6b

Please sign in to comment.