Skip to content
เข้าสู่ระบบ

Strings Deep Dive

ใครที่มาจากภาษาอื่นอาจจะงงว่า “ทำไม Rust มี String หลายแบบจังวะ?” วันนี้เรามาเคลียร์ใจกับ 2 ตัวหลักที่เราเจอบ่อยที่สุดก่อนครับ คือ String และ &str ซึ่งเป็นพื้นฐานสำคัญมากสำหรับการเขียน Rust อย่างถูกต้อง

ทำความเข้าใจ String กับ &str แบบง่ายๆ

Section titled “ทำความเข้าใจ String กับ &str แบบง่ายๆ”

ลองนึกภาพแบบนี้ครับ:

  • String เหมือน “เจ้าของบ้าน” ที่มีบ้านเป็นของตัวเอง สามารถต่อเติม รีโนเวทได้
  • &str เหมือน “แขกที่มาเยี่ยม” แค่มาดู มาใช้ แต่แก้ไขอะไรไม่ได้

ความแตกต่างหลักระหว่าง String และ &str

Section titled “ความแตกต่างหลักระหว่าง String และ &str”
คุณสมบัติString (เจ้าของ)&str (คนยืม)
Ownershipเป็นเจ้าของข้อมูล ดูแลเองทั้งหมดแค่ยืมมาอ้างอิง ไม่ได้เป็นเจ้าของ
เก็บที่ไหนHeap - หน่วยความจำแบบ dynamicชี้ไปที่ไหนก็ได้ (Heap หรือ Static)
แก้ไขได้ไหมได้ ทั้งเพิ่ม ลบ แก้ไขไม่ได้ อ่านอย่างเดียว
ใช้เมื่อไหร่ต้องเก็บถาวร, ต้องแก้ไขรับ parameter, string literal
ขนาด Memory3 words (ptr, len, capacity)2 words (ptr, len)
Drop เมื่อไหร่เมื่อ owner หมด scopeไม่ drop เพราะไม่ได้เป็นเจ้าของ

เข้าสู่ระบบเพื่อดูเนื้อหาเต็ม

ยืนยันตัวตนด้วยบัญชี Google เพื่อปลดล็อกบทความทั้งหมด