স্কালাতে প্যাটার্ন ম্যাচিং একটি শক্তিশালী বৈশিষ্ট্য যা ডেটা স্ট্রাকচারগুলোকে সহজে পরীক্ষা এবং পৃথক করতে ব্যবহৃত হয়। এটি সাধারণত match এবং case শব্দ ব্যবহার করে করা হয় এবং ডেটার কাঠামো বা কন্টেন্টের উপর ভিত্তি করে বিভিন্ন ক্ষেত্রে পৃথক মান বের করা যায়। Lists এবং Tuples এর ক্ষেত্রে প্যাটার্ন ম্যাচিং বিশেষভাবে কার্যকর, কারণ এই ডেটা স্ট্রাকচারগুলির উপাদানগুলোর উপর ভিত্তি করে প্যাটার্ন তৈরি করা সহজ।
লিস্টের জন্য প্যাটার্ন ম্যাচিং (Pattern Matching for Lists)
স্কালাতে, লিস্টের জন্য প্যাটার্ন ম্যাচিং খুবই জনপ্রিয় এবং এটি সাধারণত লিস্টের প্রথম উপাদান বা অবশিষ্ট অংশ (tail) আলাদা করতে ব্যবহৃত হয়। নিচে একটি উদাহরণ দেখানো হলো:
val list = List(1, 2, 3, 4, 5)
list match {
case Nil => println("লিস্টটি খালি")
case head :: tail => println(s"প্রথম উপাদান: $head, অবশিষ্ট উপাদান: $tail")
}এখানে:
Nil: এটি খালি লিস্টকে উপস্থাপন করে।head :: tail: এটি লিস্টের প্রথম উপাদান (head) এবং বাকি অংশ (tail) আলাদা করে।::অপারেটর ব্যবহার করা হয় লিস্টের প্রথম উপাদানকে আলাদা করার জন্য।
উপরে প্রদত্ত কোডের আউটপুট হবে:
প্রথম উপাদান: 1, অবশিষ্ট উপাদান: List(2, 3, 4, 5)টুপলের জন্য প্যাটার্ন ম্যাচিং (Pattern Matching for Tuples)
টুপল একাধিক উপাদান ধারণ করতে পারে এবং টুপলের জন্য প্যাটার্ন ম্যাচিং খুবই সহজ। আপনি টুপলের প্রতিটি উপাদানকে আলাদা করে পরীক্ষা করতে পারেন।
val tuple = (1, "Scala", 3.14)
tuple match {
case (a, b, c) => println(s"প্রথম উপাদান: $a, দ্বিতীয় উপাদান: $b, তৃতীয় উপাদান: $c")
}এখানে, case (a, b, c) প্যাটার্ন টুপলের তিনটি উপাদানকে পৃথক পৃথক ভেরিয়েবলে ধরে নেয়।
উপরে প্রদত্ত কোডের আউটপুট হবে:
প্রথম উপাদান: 1, দ্বিতীয় উপাদান: Scala, তৃতীয় উপাদান: 3.14লিস্ট এবং টুপল প্যাটার্ন ম্যাচিংয়ের আরও কিছু উদাহরণ
- লিস্টের প্যাটার্ন ম্যাচিং (Pattern Matching on Lists):
val list1 = List(1, 2, 3)
val list2 = List(5, 6, 7, 8)
list1 match {
case x :: y :: Nil => println(s"দুটি উপাদান: $x এবং $y") // দুই উপাদান বিশিষ্ট লিস্ট
case _ => println("অন্য কিছু")
}এই কোডে x :: y :: Nil লিস্টের দুটি উপাদান ধরে এবং কিছু করার চেষ্টা করবে। যদি লিস্টের আকার তা না হয়, তবে case _ অংশটি কার্যকর হবে।
- টুপল প্যাটার্ন ম্যাচিং (Pattern Matching on Tuples):
val tuple = (3, "Hello", true)
tuple match {
case (3, "Hello", true) => println("সঠিক টুপল")
case _ => println("ভিন্ন টুপল")
}এখানে, টুপলটি ঠিক (3, "Hello", true) হলে "সঠিক টুপল" মুদ্রিত হবে। অন্য কিছু হলে "ভিন্ন টুপল" মুদ্রিত হবে।
সারাংশ
লিস্ট এবং টুপল এর জন্য প্যাটার্ন ম্যাচিং ফাংশনাল প্রোগ্রামিংয়ের একটি শক্তিশালী কৌশল যা কোডকে আরও পরিষ্কার এবং সোজা করে তোলে। এটি ব্যবহার করে আপনি দ্রুত এবং সহজে ডেটা স্ট্রাকচারগুলির মধ্যে তথ্য যাচাই এবং পৃথক করতে পারেন। স্কালাতে প্যাটার্ন ম্যাচিং লিস্টের উপাদান এবং টুপলের মানকে পৃথকভাবে আলাদা করার জন্য অত্যন্ত কার্যকর।
Read more