- ทำความเข้าใจให้ชัดเจนเกี่ยวกับ
& ที่ผู้เริ่มต้น Rust มักจะแทรกเข้าไปบ่อย ๆ
- References (
&variable) : เหมือนการให้ยืมของเล่น "ดูได้ แต่จับไม่ได้นะ ใช้เสร็จแล้วต้องคืน"
- Mutable References (
&mut variable) : เหมือนการให้ยืมสมุดระบายสี "ดูได้และจะระบายสีตามใจชอบก็ได้ แต่พอใช้เสร็จต้องคืน"
- Owned Values (
variable) : เหมือนการยกของเล่นให้คนอื่น "เอ้า เอาไปเลย ใช้ได้ตามใจ และไม่ต้องคืนก็ได้"
- Reference-Counted Pointers (
Rc และ Arc) :
Rc คือ "เหมือนของตกแต่งลูกโป่งในงานวันเกิดเด็ก ทุกคนดูได้ แต่ไม่อยากให้จับ ต้องอยู่ตรงนั้นจนกว่าเด็กคนสุดท้ายจะกลับ แล้วค่อยเริ่มเก็บงาน"
- ในโค้ด async/มัลติเธรด ให้ใช้
Arc ซึ่งทำงานเหมือน Rc
3 ความคิดเห็น
RefCell<T>เป็นเครื่องมืออันตรายที่สามารถเพิกเฉยต่อทั้งหมดนี้ได้ หรือว่าตั้งใจไม่อธิบายกันแน่แม้จะซับซ้อนขึ้นอีกเล็กน้อย แต่ถ้าได้ดูภาพถ่ายในเรโปซิทอรีนี้ไปพร้อมกันด้วยก็น่าจะดี: https://github.com/usagi/rust-memory-container-cs
คำอธิบายเกี่ยวกับ RefCell หายไปนะ!