প্যাটার্ন এবং ম্যাচিং (Patterns and Matching)
প্যাটার্ন (Patterns) হলো রাস্টের একটি বিশেষ সিনট্যাক্স যা দিয়ে বিভিন্ন ধরণের টাইপের (complex এবং simple উভয়ই) গঠন বা স্ট্রাকচারের সাথে মেলানো বা ম্যাচিং করা হয়। match এক্সপ্রেশন এবং অন্যান্য কনস্ট্রাক্ট-এর সাথে প্যাটার্ন ব্যবহার করে প্রোগ্রামের কন্ট্রোল ফ্লো-এর (control flow) উপর আরও বেশি নিয়ন্ত্রণ পাওয়া যায়। একটি প্যাটার্ন নিম্নলিখিত জিনিসগুলির কোনো একটি সংমিশ্রণে গঠিত:
- লিটারেলস (Literals)
- ডিস্ট্রাকচার্ড অ্যারে, ইনাম, স্ট্রাক্ট বা টুপল (Destructured arrays, enums, structs, or tuples)
- ভেরিয়েবল (Variables)
- ওয়াইল্ডকার্ড (Wildcards)
- প্লেসহোল্ডার (Placeholders)
কিছু উদাহরণ প্যাটার্ন হলো x, (a, 3), এবং Some(Color::Red)। যে সব ক্ষেত্রে প্যাটার্ন ব্যবহার করা বৈধ, সেখানে এই উপাদানগুলো ডেটার আকৃতি বর্ণনা করে। আমাদের প্রোগ্রাম তখন এই প্যাটার্নগুলোর সাথে বিভিন্ন ভ্যালু বা মান মিলিয়ে দেখে যে, কোডের একটি নির্দিষ্ট অংশ চালানোর জন্য ডেটার সঠিক আকৃতি আছে কিনা।
একটি প্যাটার্ন ব্যবহার করার জন্য, আমরা সেটিকে কোনো একটি ভ্যালুর সাথে তুলনা করি। যদি প্যাটার্নটি ভ্যালুর সাথে মিলে যায়, তাহলে আমরা আমাদের কোডে সেই ভ্যালুর অংশগুলো ব্যবহার করি। ৬ষ্ঠ অধ্যায়ের match এক্সপ্রেশনগুলো স্মরণ করুন যা প্যাটার্ন ব্যবহার করেছিল, যেমন মুদ্রা বাছাই করার মেশিনের উদাহরণ। যদি ভ্যালুটি প্যাটার্নের আকৃতির সাথে খাপ খায়, তাহলে আমরা নাম দেওয়া অংশগুলো ব্যবহার করতে পারি। যদি তা না হয়, প্যাটার্নের সাথে যুক্ত কোডটি চালানো হবে না।
এই অধ্যায়টি প্যাটার্ন সম্পর্কিত সমস্ত বিষয়ের একটি রেফারেন্স। আমরা প্যাটার্ন ব্যবহারের বৈধ স্থান, খণ্ডনযোগ্য (refutable) এবং অখণ্ডনযোগ্য (irrefutable) প্যাটার্নের মধ্যে পার্থক্য এবং আপনার দেখতে পাওয়া বিভিন্ন ধরণের প্যাটার্ন সিনট্যাক্স নিয়ে আলোচনা করব। এই অধ্যায়ের শেষে, আপনি জানতে পারবেন কীভাবে প্যাটার্ন ব্যবহার করে অনেক ধারণা পরিষ্কারভাবে প্রকাশ করা যায়।