জাভাতে ল্যাম্বডা এক্সপ্রেশন কীভাবে ব্যবহার করবেন
আপনি কি কখনও ভেবে দেখেছেন যে কিছু পদ্ধতি এক লাইনে মাপসই হতে পারে, যদি শুধুমাত্র ভার্বোস জাভা সিনট্যাক্সের জন্য না হয় যা আপনাকে একটি পদ্ধতি ঘোষণা করতে ব্যবহার করতে হবে? আপনি কেবল একজন হন না.
পদ্ধতি প্রোগ্রামিং একটি অবিশ্বাস্যভাবে দরকারী বৈশিষ্ট্য.
একটি পদ্ধতি হল কোডের একটি ব্লক যা আপনার প্রোগ্রামে নির্দিষ্ট কিছু করে। এগুলি ব্যবহার করা হয় কারণ আপনি একবার একটি পদ্ধতি সংজ্ঞায়িত করলে, আপনি এটি একাধিকবার কল করতে পারেন। এটি আপনার কোডের অপ্রয়োজনীয়তা কমাতে সাহায্য করে, যার ফলে আপনার কোড বজায় রাখা সহজ হয়।
এই গাইডে, আমরা জাভাতে ল্যাম্বডা এক্সপ্রেশন সম্পর্কে কথা বলতে যাচ্ছি। এটি একটি বিশেষ ধরনের পদ্ধতি যা আপনি একটি ল্যাম্বডা এক্সপ্রেশন নামে ব্যবহার করতে পারেন, যা একটি কার্যকরী ইন্টারফেস প্রয়োগ করে। তারা কীভাবে কাজ করে এবং কেন ব্যবহার করা হয় সে সম্পর্কে আমরা কথা বলব।
একটি কার্যকরী ইন্টারফেস কি?
আমরা ল্যাম্বডা এক্সপ্রেশন সম্পর্কে কথা বলার আগে, আপনাকে কার্যকরী ইন্টারফেসগুলি বুঝতে হবে। এগুলি এমন ইন্টারফেস যা শুধুমাত্র একটি বিমূর্ত পদ্ধতি ধারণ করে। একটি কার্যকরী ইন্টারফেসের মধ্যে থাকা একটি বিমূর্ত পদ্ধতি ইন্টারফেসের উদ্দেশ্য বলে।
এই উদাহরণটি বিবেচনা করুন:
interface CalculateThree { double multiply_by_three(String day); }
আমরা ক্যালকুলেট থ্রি নামে একটি ইন্টারফেস তৈরি করেছি। এই ইন্টারফেসে শুধুমাত্র একটি পদ্ধতি আছে, multiply_by_three
, যার মানে হল এটি একটি কার্যকরী ইন্টারফেস।
জাভা ল্যাম্বডা এক্সপ্রেশন কি?
একটি ল্যাম্বডা এক্সপ্রেশন একটি নামহীন পদ্ধতি। এটি একটি কার্যকরী ইন্টারফেসের মধ্যে সংজ্ঞায়িত করা একটি পদ্ধতি বাস্তবায়ন করতে ব্যবহৃত হয়। ল্যাম্বডা এক্সপ্রেশনগুলিকে কখনও কখনও বেনামী পদ্ধতি বলা হয় কারণ তাদের একটি নাম নেই।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
ল্যাম্বডা এক্সপ্রেশনগুলি তীর অপারেটর ব্যবহার করে, যা তাদের দুটি বিভাগে বিভক্ত করে:
(parameter list) -> lambda body
বাম দিকে অভিব্যক্তি ব্যবহার করে প্যারামিটার রয়েছে; ডানদিকে কোডটি রয়েছে যা ল্যাম্বডা এক্সপ্রেশনটি চালানো হলে চালানো হবে। Lambda ফাংশন একটি একক প্যারামিটার বা একাধিক প্যারামিটার গ্রহণ করতে পারে।
কিভাবে ল্যাম্বডা এক্সপ্রেশন ব্যবহার করবেন
আসুন একটি প্রোগ্রাম তৈরি করি যা ব্যবহারকারীর দ্বারা সন্নিবেশিত একটি সংখ্যা নেয় এবং এটিকে তিন দ্বারা গুণ করে। আমরা কোড লিখে শুরু করব যা ব্যবহারকারীর কাছ থেকে একটি নম্বর গ্রহণ করে:
import java.util.Scanner; class Main { public static void main(String args[]) { Scanner user_input = new Scanner(System.in); System.out.println("Insert a number to multiply by three: "); double user_number = user_input.nextDouble(); } }
যখন আমরা এই কোডটি চালাই, তখন আমাদের ব্যবহারকারীকে গুণ করার জন্য একটি সংখ্যা সন্নিবেশ করতে বলা হবে। আমাদের প্রোগ্রাম সেই সংখ্যাটি পরিবর্তনশীল "user_number" এ পড়বে। জাভা স্ক্যানারের উপর আমাদের টিউটোরিয়াল পড়ে স্ক্যানার ক্লাস কীভাবে কাজ করে সে সম্পর্কে আপনি আরও জানতে পারেন।
এর পরে, আমরা সংখ্যাটিকে তিন দ্বারা গুণ করার জন্য একটি ল্যাম্বডা অভিব্যক্তিকে সংজ্ঞায়িত করতে যাচ্ছি। আপনার main
উপরে নিম্নলিখিত কোড পেস্ট করুন পদ্ধতি:
interface CalculateThree { double multiply_by_three(double number); }
এই কোডটি ইন্টারফেসকে সংজ্ঞায়িত করে যা আমাদের ল্যাম্বডা এক্সপ্রেশনটি উল্লেখ করবে। তারপর ক্লাসের মূল পদ্ধতির নীচে নিম্নলিখিত কোডটি যোগ করুন:
CalculateThree multiply = (number) -> number * 3; double answer = multiply.multiply_by_three(user_number); System.out.println(user_number + " multiplied by three is " + answer);
আমরা "গুণ" নামক একটি ভেরিয়েবল ঘোষণা করতে CalculateThree ইন্টারফেস ব্যবহার করেছি। এটি আমাদের ল্যাম্বডা এক্সপ্রেশনের কোড সংরক্ষণ করে। ল্যাম্বডা এক্সপ্রেশনটি multiply_by_three
এর সাথে যুক্ত আমাদের CalculateThree ইন্টারফেসে কারণ multiply_by_three
ইন্টারফেসের একমাত্র ফাংশন।
আমরা তখন এই ফাংশনটিকে কল করতে ডট নোটেশন ব্যবহার করেছি:
multiply.multiply_by_three(user_number);
ডট নোটেশন হল যেখানে আপনি যে ক্লাস বা ইন্টারফেসের নাম উল্লেখ করতে চান তার নাম উল্লেখ করুন, তারপর একটি ডট, তারপরে আপনি যে পদ্ধতিতে অ্যাক্সেস করতে চান তার নাম। এই ক্ষেত্রে, আমরা multiply_by_three
অ্যাক্সেস করতে চাই "গুণ" ইন্টারফেসের ভিতরে পদ্ধতি।
আমাদের চূড়ান্ত কোড এইরকম দেখাচ্ছে:
import java.util.Scanner; interface CalculateThree { double multiply_by_three(double number); } class Main { public static void main(String args[]) { Scanner user_input = new Scanner(System.in); System.out.println("Insert a number to multiply by three: "); double user_number = user_input.nextDouble(); CalculateThree multiply = (number) -> number * 3; double answer = multiply.multiply_by_three(user_number); System.out.println(user_number + " multiplied by three is " + answer); } }
আসুন আমাদের কোড চালাই এবং গুন করতে 3 নম্বর সন্নিবেশ করি:
Insert a number to multiply by three: 3 3.0 multiplied by three is 9.0
আমাদের কোড সফলভাবে 3 দ্বারা সন্নিবেশিত সংখ্যাকে গুণ করেছে। এই ক্রিয়াটি আমরা সংজ্ঞায়িত ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে সঞ্চালিত হয়েছিল।
কিভাবে ব্লক ল্যাম্বডা এক্সপ্রেশন ব্যবহার করবেন
Lambda অভিব্যক্তি দুটি আকারে প্রদর্শিত হতে পারে:একক অভিব্যক্তি ব্যবহার করে, অথবা ব্লক ব্যবহার করে। ব্লক ল্যাম্বডা সিনট্যাক্স ব্যবহার করা হয় যখন তীরের ডান দিকের কোডটি একাধিক লাইন গ্রহণ করবে।
ব্লক সিনট্যাক্স হল যেখানে আপনি কোঁকড়া ধনুর্বন্ধনী ({}) দিয়ে ল্যাম্বডা এক্সপ্রেশনের ডানদিকে কোডটিকে ঘিরে রাখেন।
এই উদাহরণটি বিবেচনা করুন:
interface GreetUser { String welcome_user(String name); } class Main { public static void main(String args[]) { GreetUser send_greeting = (name) -> { System.out.println("Good morning!"); System.out.println("Welcome, " + name); }; System.out.println(send_greeting.welcome_user("Brad")); } }
আমরা send_greeting
নামে একটি ল্যাম্বডা অভিব্যক্তি ঘোষণা করেছি . এই অভিব্যক্তিটি ইন্টারফেস GreetUser বোঝায় যা আমরা আমাদের প্রোগ্রামের শুরুতে সংজ্ঞায়িত করেছি। আমাদের ল্যাম্বডা অভিব্যক্তি দুটি ক্রিয়া সম্পাদন করে। এটা:
- প্রিন্ট করে "শুভ সকাল!" কনসোলে
- কনসোলে ব্যবহারকারীর নাম অনুসরণ করে "স্বাগতম," প্রিন্ট করে
যেহেতু এটি কোডের দুটি লাইন নেয়, আমরা ব্লক সিনট্যাক্স ব্যবহার করেছি। আমাদের ল্যাম্বডা এক্সপ্রেশনের ডানদিকের কোডটি কোঁকড়া বন্ধনীর মধ্যে আবদ্ধ।
উপসংহার
ল্যাম্বডা এক্সপ্রেশনগুলি নামহীন পদ্ধতি যা একটি কার্যকরী ইন্টারফেস বাস্তবায়ন করে। এই ফাংশনগুলিকে কখনও কখনও বেনামী ক্লাস বা ফাংশন বলা হয় কারণ তাদের একটি নাম নেই এবং তারা নিজেরাই চালায় না।
আপনি একটি চ্যালেঞ্জ জন্য আপ? একটি ল্যাম্বডা এক্সপ্রেশন লিখুন যা একটি সংখ্যা জোড় কিনা তা পরীক্ষা করে। যদি এটি হয়, "X is জোড়" কনসোলে প্রিন্ট করা উচিত, যেখানে X নম্বরটি পরীক্ষা করা হচ্ছে; অন্যথায়, "এক্স বিজোড়" কনসোলে প্রিন্ট করা উচিত।
এখন আপনি একজন বিশেষজ্ঞের মতো জাভাতে ল্যাম্বডা এক্সপ্রেশন নিয়ে কাজ শুরু করতে প্রস্তুত!