鑒于Java 7 SE(標(biāo)準(zhǔn)版)現(xiàn)已正式發(fā)布,甲骨文和Java社區(qū)進(jìn)程組織(JCP)的成員們已開始仔細(xì)考慮為這種編程語言的下一個(gè)版本Java SE 8添加什么功能特性。前段時(shí)間曝光將為Java 8提上議程的工作是:設(shè)計(jì)面向云計(jì)算的Java。近日又有提出了對(duì)Java 8語法上的改變:Java 8 將采用跟C#一樣的Lambda句法。
相關(guān)負(fù)責(zé)人稱:我們決定Java 8 將采用跟C#一樣的Lambda句法,當(dāng)然我們會(huì)做一些細(xì)微的改變。
C#的語法是:
-
lambda = ArgList Arrow Body
-
ArgList = Identifier
-
| "(" Identifier [ "," Identifier ]* ")"
-
| "(" Type Identifier [ "," Type Identifier ]* ")"
-
Body = Expression
-
| "{" [ Statement ";" ]+ "}"
-
-
-
-
-
這里是使用lambda表達(dá)式這種語法的一些例子:
-
x => x + 1
-
(x) => x + 1
-
(int x) => x + 1
-
(int x, int y) => x + y
-
(x, y) => x + y
-
(x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }
-
() => { System.out.println("I am a Runnable"); }
-
-
-
-
-
-
參考原文:http://mail.openjdk.java.net/pipermail/lambda-dev/2011-September/003936.html