【IT168 资讯】鉴于Java 7 SE(标准版)现已正式发布,甲骨文和Java社区进程组织(JCP)的成员们已开始仔细考虑为这种编程语言的下一个版本Java SE 8添加什么功能特性。前段时间曝光将为Java 8提上议程的工作是:设计面向云计算的Java。近日又有提出了对Java 8语法上的改变:Java 8 将采用跟C#一样的Lambda句法。
相关负责人称:我们决定Java 8 将采用跟C#一样的Lambda句法,当然我们会做一些细微的改变。
C#的语法是:
1 lambda = ArgList Arrow Body
2 ArgList = Identifier
3 | "(" Identifier [ "," Identifier ]* ")"
4 | "(" Type Identifier [ "," Type Identifier ]* ")"
5 Body = Expression
6 | "{" [ Statement ";" ]+ "}"
2 ArgList = Identifier
3 | "(" Identifier [ "," Identifier ]* ")"
4 | "(" Type Identifier [ "," Type Identifier ]* ")"
5 Body = Expression
6 | "{" [ Statement ";" ]+ "}"
这里是使用lambda表达式这种语法的一些例子:
1 x => x + 1
2 (x) => x + 1
3 (int x) => x + 1
4 (int x, int y) => x + y
5 (x, y) => x + y
6 (x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }
7 () => { System.out.println("I am a Runnable"); }
2 (x) => x + 1
3 (int x) => x + 1
4 (int x, int y) => x + y
5 (x, y) => x + y
6 (x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }
7 () => { System.out.println("I am a Runnable"); }
参考原文:http://mail.openjdk.java.net/pipermail/lambda-dev/2011-September/003936.html