Section 1: Lab: เริ่มต้น Rust และ Cargo
- Rust เหมาะกับงานแบบใด และจุดต่างจาก C++, Go และภาษาที่มี Garbage Collector
- ติดตั้งด้วย rustup, รอบออกรุ่นทุก 6 สัปดาห์ และ Edition 2024
- cargo new, build, run, check และ cargo build --release
- Lab: โปรแกรมแรกพร้อมจัดรูปแบบด้วย rustfmt และตรวจด้วย Clippy
Section 2: ชนิดข้อมูลและ Control Flow
- ตัวแปร, mut, Shadowing และ Type Inference
- String กับ &str และการทำงานกับข้อความ UTF-8 รวมถึงภาษาไทย
- if, loop, while, for และ Let Chain ใน Edition 2024
- Lab: โปรแกรมคำนวณค่าขนส่งจากข้อมูลที่ผู้ใช้ป้อน
Section 3: Ownership, Borrowing และ Lifetime
- Move, Clone และ Copy ต่างกันอย่างไร
- Reference แบบ &T และ &mut T และกฎของ Borrow Checker
- Slice และ Lifetime เบื้องต้นในฟังก์ชัน
- Lab: แก้โค้ดที่คอมไพล์ไม่ผ่านจากข้อความแจ้งเตือนของคอมไพเลอร์
Section 4: Lab: Struct, Enum และ Pattern Matching
- Struct, Method และ Associated Function
- Enum ที่เก็บข้อมูลได้ และ Option แทนค่า null
- match, if let และ let-else
- Lab: โมเดลข้อมูลคำสั่งซื้อพร้อมสถานะด้วย Enum
Section 5: จัดการ Error อย่างเป็นระบบ
- panic กับ Result และเมื่อไรควรใช้แต่ละแบบ
- เครื่องหมาย ? สำหรับส่ง Error ต่อ
- สร้างชนิด Error ด้วย thiserror และใช้ anyhow ในระดับแอปพลิเคชัน
- Lab: อ่านไฟล์ CSV และรายงาน Error ที่อ่านเข้าใจได้
Section 6: Lab: Trait, Generic, Closure และ Iterator
- Trait แทนการสืบทอด Class และ Trait มาตรฐานอย่าง Debug, Display และ From
- Generic และ Trait Bound
- Closure และ Iterator: map, filter, fold และ collect
- Lab: สรุปยอดขายจากรายการคำสั่งซื้อด้วย Iterator