Lambda基礎(chǔ)語(yǔ)法
() -> {} ? ??
// No parameters; result is void? 無(wú)參數(shù),無(wú)返回結(jié)果嘱支。
() -> 42? ? ? ? ? ? ??
// No parameters, expression body 無(wú)參數(shù)怠益,返回表達(dá)體摹量。
() -> null? ? ? ? ? ??
// No parameters, expression body 無(wú)參數(shù)勃痴,返回表達(dá)體null。
() -> { return 42; }? ?
// No parameters, block body with return? 無(wú)參數(shù)洗搂,返回塊體消返。
() -> { System.gc(); }
// No parameters, void block body??? 無(wú)參數(shù)载弄,void塊體。
() -> {? ? ? ? ? ? ??
? if (true) return 12;
? else {
? ? int result = 15;
? ? for (int i = 1; i < 10; i++)
? ? ? result *= i;
? ? return result;
? }
}? ?
// Complex block body with returns?? 具有返回的復(fù)雜塊體
(int x) -> x+1? ? ? ? ? ? ?
// Single declared-type parameter?? 單個(gè)聲明類(lèi)型參數(shù)
(int x) -> { return x+1; }?
// Single declared-type parameter? 單個(gè)聲明類(lèi)型參數(shù),返回塊體撵颊。
(x) -> x+1? ? ? ? ? ? ? ? ?
// Single inferred-type parameter? 單個(gè)推斷類(lèi)型參數(shù)
x -> x+1? ? ? ? ? ? ? ? ??
// Parentheses optional for?? 單個(gè)類(lèi)型參數(shù)宇攻,括號(hào)可省略。
?// single inferred-type parameter? 單個(gè)推斷類(lèi)型參數(shù)
(String s) -> s.length()? ??
// Single declared-type parameter?? 單個(gè)聲明類(lèi)型參數(shù)
(Thread t) -> { t.start(); }?
// Single declared-type parameter? 單個(gè)聲明類(lèi)型參數(shù)
s -> s.length()? ? ? ? ? ??
// Single inferred-type parameter? 單個(gè)推斷類(lèi)型參數(shù)
t -> { t.start(); }? ? ? ? ?
// Single inferred-type parameter? 單個(gè)推斷類(lèi)型參數(shù)
(int x, int y) -> x+y?
// Multiple declared-type parameters? 多個(gè)聲明類(lèi)型參數(shù)
(x, y) -> x+y? ? ? ? ?
// Multiple inferred-type parameters?? 多個(gè)推斷類(lèi)型參數(shù)
(x, int y) -> x+y??
// Illegal: can't mix inferred and declared types?? 非法:不能混合推斷和聲明的類(lèi)型
(x, final y) -> x+y?
// Illegal: no modifiers with inferred types?? 非法:沒(méi)有帶推斷類(lèi)型的修飾符