คำถามติดแท็ก borrowing

2
เหตุใดจึงไม่แนะนำให้ยอมรับการอ้างอิงถึง 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 } อย่างไรก็ตามฉันได้รับคำติชมว่าการทำเช่นนี้ไม่ใช่ความคิดที่ดี ทำไมจะไม่ล่ะ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.