# Pattern Matching (Rust) > นิพจน์ match, if let, while let, destructuring, guards, @ bindings, ความครบถ้วน (exhaustiveness) - 18 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Rust](https://sharpskill.dev/th/technologies/rust/interview-questions.md) ## 1. ไวยากรณ์ที่ถูกต้องสำหรับนิพจน์ match พื้นฐานใน Rust คืออะไร? **คำตอบ** นิพจน์ match ใน Rust ใช้คีย์เวิร์ด match ตามด้วยค่าที่จะวิเคราะห์ จากนั้นเป็นวงเล็บปีกกาที่บรรจุ arm (pattern) ต่าง ๆ คั่นด้วยเครื่องหมายจุลภาค แต่ละ arm ใช้ pattern ตามด้วย => และโค้ดที่จะรัน ไวยากรณ์นี้ทำให้คอมไพเลอร์ตรวจสอบได้ว่าครอบคลุมทุกกรณีที่เป็นไปได้ ## 2. ควรใช้ pattern ใดเพื่อจับค่าที่เหลือทั้งหมดใน match? **คำตอบ** pattern _ (underscore) คือ catch-all pattern ใน Rust มันจะจับคู่กับค่าใดก็ได้โดยไม่ผูกค่านั้นกับตัวแปร อีกทางเลือกหนึ่งคือการใช้ชื่อตัวแปร (เช่น other หรือ n) เพื่อจับค่า โดยทั่วไปนิยมใช้ _ เมื่อไม่ได้ใช้ค่านั้น เพราะมันแสดงเจตนาได้อย่างชัดเจน ## 3. if let ทำงานอย่างไรเมื่อเทียบกับ match? **คำตอบ** if let เป็นไวยากรณ์แบบย่อสำหรับ match ที่จัดการเพียง pattern เดียวและละเว้นที่เหลือ แทนที่จะเขียน match แบบเต็มที่มี arm _ catch-all การใช้ if let ช่วยให้ดึงค่าออกมาได้อย่างกระชับเมื่อมีเพียงกรณีเฉพาะเท่านั้นที่สำคัญ มันมีประโยชน์อย่างยิ่งเมื่อใช้กับ Option และ Result ## มีอีก 15 คำถาม - exhaustiveness ในบริบทของ pattern matching ของ Rust คืออะไร? - จะแยกโครงสร้าง tuple ใน pattern match ได้อย่างไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Rust อื่นๆ - [พื้นฐาน Rust](https://sharpskill.dev/th/technologies/rust/interview-questions/rust-basics.md): 25 คำถาม, Junior - [Ownership & Borrowing](https://sharpskill.dev/th/technologies/rust/interview-questions/ownership-borrowing.md): 22 คำถาม, Junior - [Structs & Enums](https://sharpskill.dev/th/technologies/rust/interview-questions/structs-enums.md): 20 คำถาม, Junior - [การจัดการข้อผิดพลาด](https://sharpskill.dev/th/technologies/rust/interview-questions/error-handling.md): 18 คำถาม, Junior - [คอลเลกชัน](https://sharpskill.dev/th/technologies/rust/interview-questions/collections.md): 20 คำถาม, Junior - [โมดูลและแพ็กเกจ](https://sharpskill.dev/th/technologies/rust/interview-questions/modules-packages.md): 18 คำถาม, Junior - [Traits](https://sharpskill.dev/th/technologies/rust/interview-questions/traits.md): 22 คำถาม, Mid-Level - [Generics](https://sharpskill.dev/th/technologies/rust/interview-questions/generics.md): 20 คำถาม, Mid-Level - [Lifetimes](https://sharpskill.dev/th/technologies/rust/interview-questions/lifetimes.md): 20 คำถาม, Mid-Level - [Iterators & Closures](https://sharpskill.dev/th/technologies/rust/interview-questions/iterators-closures.md): 22 คำถาม, Mid-Level - [Smart Pointers](https://sharpskill.dev/th/technologies/rust/interview-questions/smart-pointers.md): 22 คำถาม, Mid-Level - [Concurrency Basics](https://sharpskill.dev/th/technologies/rust/interview-questions/concurrency-basics.md): 20 คำถาม, Mid-Level - [async/await](https://sharpskill.dev/th/technologies/rust/interview-questions/async-await.md): 22 คำถาม, Mid-Level - [Testing](https://sharpskill.dev/th/technologies/rust/interview-questions/testing.md): 18 คำถาม, Mid-Level - [Cargo & Ecosystem](https://sharpskill.dev/th/technologies/rust/interview-questions/cargo-ecosystem.md): 18 คำถาม, Mid-Level - [มาโคร](https://sharpskill.dev/th/technologies/rust/interview-questions/macros.md): 20 คำถาม, Mid-Level - [Serde และการ Serialization](https://sharpskill.dev/th/technologies/rust/interview-questions/serde-serialization.md): 20 คำถาม, Mid-Level - [Unsafe Rust](https://sharpskill.dev/th/technologies/rust/interview-questions/unsafe-rust.md): 20 คำถาม, Senior - [Trait ขั้นสูง](https://sharpskill.dev/th/technologies/rust/interview-questions/advanced-traits.md): 22 คำถาม, Senior - [Lifetime ขั้นสูง](https://sharpskill.dev/th/technologies/rust/interview-questions/advanced-lifetimes.md): 20 คำถาม, Senior - [Type System](https://sharpskill.dev/th/technologies/rust/interview-questions/type-system.md): 20 คำถาม, Senior - [Tokio & Async I/O](https://sharpskill.dev/th/technologies/rust/interview-questions/tokio-async.md): 22 คำถาม, Senior - [การเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/rust/interview-questions/performance-optimization.md): 20 คำถาม, Senior - [Memory Management](https://sharpskill.dev/th/technologies/rust/interview-questions/memory-management.md): 20 คำถาม, Senior - [Web Frameworks](https://sharpskill.dev/th/technologies/rust/interview-questions/web-frameworks.md): 22 คำถาม, Senior - [Database Integration](https://sharpskill.dev/th/technologies/rust/interview-questions/database-integration.md): 20 คำถาม, Senior - [Design Pattern ของ Rust](https://sharpskill.dev/th/technologies/rust/interview-questions/design-patterns.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/rust/interview-questions/pattern-matching