تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

آموزش جاوا (Java) قسمت 51 : استفاده از Lambda Expression

با سلام به همه دوستان و همراهان عزیز itpro. یکی از قابلیت های جدید که به زبان برنامه نویسی جاوا اضافه شده است lambda expression است و این قابلیت به عنوان یکی از بهترین قابلیت های جاوا شناخته می شود. Lambda expression برنامه نویسی تابعی را آسان تر می کند و باعث می شود که روند برنامه نویسی ساده تر و سریع تر انجام شود.

نحوه نوشتاری syntax

نحوه نوشتن lambda expression به شکل زیر است:

parameter -> expression body

برای نوشتن متد ها تا قبل از معرفی lambda expression می بایست همه متدها را بایستی به روش قبلی تعریف می کردیم که نام متد و نوع بازگشتی و تعداد پارامتر ها و نوع پارامتر ها باید مشخص می شد و نحوه نوشتن آن باید به شکل زیر می بود

returnType methodNmame(parameterType parameter1,parameterType2 parameter2,...){
    
}

با استفاده از lambda expression این عمل راحت تر شده است. برای این که یک متد را تعریف کنیم می توانیم نوع پارامتر ها را مشخص نکنیم. همچنین می توانیم نوع بازگشتی را مشخص نکنیم. همچنین اجباری در استفاده از کلمه return و براکت شروع و پایان نداریم. Lambda expression برای زمانی استفاده می شود که می خواهیم به یک متد ارجاع دهیم. ارجاع به متد ها را در مطلب بعدی خواهیم گفت. برای درک بهتر این مفهوم به مثال زیر دقت کنید.

public class LambdaExpressionClass {
    public static void main(String args[]){
        LambdaExpressionClass expression = new LambdaExpressionClass();

        //with type declaration
        MathOperation addition = (int a, int b) -> a + b;

        //with out type declaration
        MathOperation subtraction = (a, b) -> a - b;

        //with return statement along with curly braces
        MathOperation multiplication = (int a, int b) -> { return a * b; };

        //without return statement and without curly braces
        MathOperation division = (int a, int b) -> b==0?0:a / b;

        System.out.println("10 + 5 = " + expression.operate(10, 5, addition));
        System.out.println("10 - 5 = " + expression.operate(10, 5, subtraction));
        System.out.println("10 x 5 = " + expression.operate(10, 5, multiplication));
        System.out.println("10 / 5 = " + expression.operate(10, 5, division));

        //with parenthesis
        GreetingService greetService1 = message -> System.out.println("Hello " + message);

        //without parenthesis
        GreetingService greetService2 = (message) ->
                System.out.println("Hello " + message);

        greetService1.sayMessage("Mehdi");
        greetService2.sayMessage("Itpro");
    }

    interface MathOperation {
        int operation(int a, int b);
    }

    interface GreetingService {
        void sayMessage(String message);
    }

    private int operate(int a, int b, MathOperation mathOperation){
        return mathOperation.operation(a, b);
    }
}

اگر این برنامه را اجرا کنیم خروجی به شکل زیر خواهد بود:

10 + 5 = 15
10 - 5 = 5
10 x 5 = 50
10 / 5 = 2
Hello Mehdi
Hello Itpro

تعریف های متدهای addition یک نوع استفاده از lambda expression می باشد. می بینید که در این متد از کلمه return استفاده نمی شود. در متد subtraction نوع داده های ورودی نیز مشخص نشده است. در تعریف متد multiplication هم نوع ورودی ها مشخص شده است و هم کلمه return و علامت براکت آورده شده است. همینطور می توان علامت پرانتز مربوط به پارامتر های ورودی را نیز استفاده نکرد برای مثال در تعریف greetService1 برای message از پرانتز استفاده نشده است. می بینید که استفاده از lambda expression برنامه نویسی راحت تر می شود. Itpro باشید

نویسنده: مهدی عادلی فر

منبع: جزیره برنامه نویسی و توسعه نرم افزار وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند