/**
* lambda表達式語法的介紹
*/
/**
* 基本語法解釋
*
* [接口聲明] = (參數) -> { 執行代碼塊 };
*
* 1,聲明 :就是和Lambda表達式綁定的接口類型
*
* 2.參數:包含一對小括號,和綁定的接口中的抽象方法中的參數個數及順序一致
*
* 3.操作符: ->
*
* 4.執行的代碼塊: 包含在一對大括號中,出現在操作符右側
*/
Ilambda1 i1 = () -> {
System.out.println("test方法");
};
i1.test();
//這裏需要注意的是。如果在執行方法體中只有一行代碼,則可以 省略掉大括號
Ilambda1 i2 = () -> System.out.println("hehefanfa");
i2.test();;
//帶參數的lambda表達式的演示
Ilambda2 i21 = (String n,int a) -> {
System.out.println(n+" say : my age is "+a);
};
i21.test("jack",12);
//這裏演示的是參數,JVM在運行時可以自動識別參數類型,可以不用寫參數類型
Ilambda2 i22 = (n,a) -> {
System.out.println(n+" 說 ,今天 "+a);
};
i22.test("hehe",35);
//演示帶參數,帶返回值的lambda表達式
Ilambda3 i31 = (x,y) -> {
int z = x+y;
return z;
};
System.out.println(i31.test(1,2));
//這裏需要注意的,如果執行代碼塊只有一行代碼,可以省略return關鍵字
Ilambda3 i32 = (x,y) -> x + y;
System.out.println(i32.test(3,2));
/**
* 1 lambda表達式必須和接口進行綁定
*
* 2.lambda表達式可以附帶0到n個參數,括號中的參數類型可以不用指定,jvm在運行時,會自動根據綁定的抽象方法中的參數類型推導出對應的參數類型
*
* 3.lambda表達式的返回值,如果代碼塊只有一行,並且沒有大括號,則不用寫return關鍵字,單行代碼的執行結果會自動返回;如果添加了大括號,或者有多行代碼,則必須通過 return 關鍵字進行返回
*/
/**
* 無參數,無返回值的接口聲明
*/
interface Ilambda1{
void test();
}
/**
* 帶參數,無返回值的接口的聲明
*/
interface Ilambda2{
void test(String name,int age);
}
/**
* 帶參數,帶返回值的接口聲明
*/
interface Ilambda3{
int test (int x,int y);
}