Using & when passing a borrowed parameter
⚓ Rust 📅 2025-10-26 👤 surdeus 👁️ 3I do not understand the difference between the following two calls in the working program below ?
add_my_size(self, rhs)
add_my_size(&self, &rhs)
struct MyUsize {
value : usize ,
}
fn add_my_size(left : &MyUsize, right : &MyUsize) -> MyUsize
{ MyUsize {
value : left.value + right.value ,
}
}
impl std::ops::Add< &MyUsize > for &MyUsize {
type Output = MyUsize;
fn add(self, rhs : &MyUsize) -> MyUsize {
if self.value < rhs.value {
add_my_size(&self, &rhs)
} else {
add_my_size(self, rhs)
}
}
}
fn main() {
let one = MyUsize{ value : 1 };
let two = MyUsize{ value : 2 };
let three = &one + &two;
println!( "&one + &two = {}", three.value);
}
2 posts - 2 participants
🏷️ Rust_feed