Tour of Rust Table of Contents

Combining Smart Pointers

Smart pointers ดูเหมือนจะมีข้อจำกัด แต่มันสามารถเอามารวมกันเพื่อให้ทำงานให้มีความหลากหลายเพิ่มขึ้นได้

Rc<Vec<Foo>> - อนุญาตให้ทำการโคลน smart pointer หลายตัว ที่สามารถยืมเวกเตอร์เดียวกันของโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปบน heap ได้

Rc<RefCell<Foo>> - อนุญาตให้ smart pointer หลายตัวสามารถยืมโครงสร้าง Foo ตัวเดียวกัน โดยยืมได้ทั้งแบบ เปลี่ยนแปลงได้/เปลี่ยนแปลงไม่ได้

Arc<Mutex<Foo>> - อนุญาตให้ smart pointer หลายตัวสามารถล็อกการยืม โดยยืมได้ทั้งแบบ เปลี่ยนแปลงได้/เปลี่ยนแปลงไม่ได้ ชั่วคราว​ ในลักษณะเฉพาะของเธรด CPU

รายละเอียดหน่วยความจำ: