Pourquoi est-il déconseillé d'accepter une référence à une chaîne (& String), Vec (& Vec) ou Box (& Box) comme argument de fonction?

J'ai écrit du code Rust qui prend &Stringcomme argument: fn awesome_greeting(name: &String) { println!("Wow, you are awesome, {}!", name); } J'ai également écrit du code qui prend une référence à un Vecou Box: fn total_price(prices: &Vec<i32>) -> i32 { prices.iter().sum() } fn...