การแทรกค่าลงในสตริง

Rust:
การแทรกค่าลงในสตริง

วิธีการ:

ใน Rust, เราใช้ format! macro:

fn main() {
    let name = "Ferris";
    let greeting = format!("สวัสดี, {}!", name);
    println!("{}", greeting); // แสดงผล "สวัสดี, Ferris!"
}

format! macro ทำงานคล้ายกับ println!, แต่จะคืนค่าสตริงที่จัดรูปแบบแล้ว แทนที่จะพิมพ์มันออกมา

ดำดิ่งลึกลงไป

Rust เลือกใช้ macros เช่น format! สำหรับการแทรกสตริงแทนที่จะใช้ syntax ในภาษา ทำไม? Macros มีความสามารถและยืดหยุ่น—ขยายฟังก์ชันของภาษาโดยไม่ต้องมี syntax ที่ซับซ้อน

ในอดีต ภาษาอย่าง C ใช้ฟังก์ชั่นเช่น sprintf ซึ่งดูไม่สะดวกและมีโอกาสเกิดข้อผิดพลาดได้ง่าย Rust’s format! macro นั้นปลอดภัยกว่า เพราะป้องกันข้อผิดพลาดทั่วไป

มีทางเลือกอื่น เช่น การใช้ + ในการต่อสตริง หรือ format_args! macro เพื่อหลีกเลี่ยงการจัดสรรหน่วยความจำในกอง แต่เมื่อพูดถึงความง่ายและความชัดเจน, format! ถือว่าเป็นที่สุด

หมายเหตุเรื่องประสิทธิภาพ: format! จะจัดสรรหน่วยความจำ สำหรับโค้ดที่ต้องการประสิทธิภาพสูงสุด, พิจารณาวิธีอื่น เช่น การเขียนลงใน buffer โดยตรง

ดูเพิ่มเติม