Tour of Rust Table of Contents

Box

Box เป็นโครงสร้างข้อมูลที่ยอมให้เราย้ายข้อมูลจาก stack ไปไว้ใน heap ได้

Box คือโครงสร้างที่รู้จักกันในอีกชื่อว่า smart pointer เพราะว่ามันครอบครองพอยเตอร์ ที่ชี้ไปยังข้อมูลของเราใน heap

และด้วยเหตุที่ Box เป็น struct ที่เรารู้ขนาดแน่นอน (เพราะว่ามันแค่ถือครองพอยเตอร์) มันจึงเป็นตัวเลือกที่ถูกนำมาใช้บ่อยๆ เพื่อเก็บการอ้างอิงไปยังของชิ้นอื่นใน struct เมื่อต้องการขนาดของฟิลด์ที่แน่นอน

โดยปกติ Box สามารถใช้ได้จากทุกที่:

Box::new(Foo { ... })