33 lines
513 B
Rust
33 lines
513 B
Rust
// $ rustc ownersystem_3_borrowing.rs
|
|
// $ ./ownersystem_3_borrowing
|
|
struct Bob {
|
|
n: Vec<i32>
|
|
}
|
|
|
|
impl Bob {
|
|
fn new() -> Bob {
|
|
Bob { n: Vec::new() }
|
|
}
|
|
}
|
|
|
|
fn func_1() {
|
|
let n = Bob::new();
|
|
let n1 = &n;
|
|
let n2 = &n;
|
|
func_2(n1);
|
|
func_3(n2);
|
|
//works because both func_2 and func_3 only got read only references
|
|
println!("{}", n.n[0]);
|
|
}
|
|
|
|
fn func_2(b: &Bob) {
|
|
println!("{}", b.n[0]);
|
|
}
|
|
|
|
fn func_3(b: &Bob) {
|
|
println!("{}", b.n[0]);
|
|
}
|
|
|
|
fn main() {
|
|
func_1();
|
|
} |