Mengapa tidak disarankan untuk menerima referensi ke String (& String), Vec (& Vec), atau Box (& Box) sebagai argumen fungsi?

Saya menulis beberapa kode Rust yang mengambil &Stringargumen: fn awesome_greeting(name: &String) { println!("Wow, you are awesome, {}!", name); } Saya juga telah menulis kode yang mengacu pada a Vecatau Box: fn total_price(prices: &Vec<i32>) -> i32 {