@@ -67,7 +67,7 @@ Now we can call `compute_distance()`:
67
67
# let on_the_stack : Point = Point{x: 3.0, y: 4.0};
68
68
# let on_the_heap : Box<Point> = box Point{x: 7.0, y: 9.0};
69
69
# fn compute_distance(p1: &Point, p2: &Point) -> f64 { 0.0 }
70
- compute_distance(&on_the_stack, &* on_the_heap);
70
+ compute_distance(&on_the_stack, on_the_heap);
71
71
~~~
72
72
73
73
Here, the ` & ` operator takes the address of the variable
@@ -77,9 +77,10 @@ value. We also call this _borrowing_ the local variable
77
77
` on_the_stack ` , because we have created an alias: that is, another
78
78
name for the same data.
79
79
80
- For the second argument, we need to extract the contents of ` on_the_heap `
81
- by derefercing with the ` * ` symbol. Now that we have the data, we need
82
- to create a reference with the ` & ` symbol.
80
+ In the case of ` on_the_heap ` , however, no explicit action is necessary.
81
+ The compiler will automatically convert a box box point to a reference like &point.
82
+ This is another form of borrowing; in this case, the contents of the owned box
83
+ are being lent out.
83
84
84
85
Whenever a caller lends data to a callee, there are some limitations on what
85
86
the caller can do with the original. For example, if the contents of a
0 commit comments