Почему не рекомендуется принимать ссылку на String (& String), Vec (& Vec) или Box (& Box) в качестве аргумента функции?
Я написал некоторый код Rust, который занимает&String
в качестве аргумента:
fn awesome_greeting(name: &String) {
println!("Wow, you are awesome, {}!", name);
}
Я также написал код, который принимает ссылку наVec
или жеBox
:
fn total_price(prices: &Vec<i32>) -> i32 {
prices.iter().sum()
}
fn is_even(value: &Box<i32>) -> bool {
**value % 2 == 0
}
Тем не менее, я получил некоторые отзывы, что делать это не очень хорошая идея. Почему бы и нет?