阅读更多

12顶
7踩

编程语言

翻译新闻 Java 8决定采用跟C#一样的Lambda句法

2011-09-09 15:31 by 见习编辑 songshuang 评论(28) 有15992人浏览
Java 7 正式版已经发布,甲骨文和Java社区进程组织(JCP)的成员们开始考虑为这种编程语言的下一个版本Java SE 8添加新特性了。

经过对备选方案的筛选,JCP团队决定Java 8 将采用跟C#一样的Lambda句法,一些细节还在仔细考虑,涉及到方法引用的语法问题也还在讨论中。

选择这种语法的理由

  • 在主要方面权衡,Lambda都被评价为“相当不错”(尽管和其他语法一样有瑕疵),无论使用“小”的Lambda表达式(通常用作方法参数)或是使用“大”的Lambda表达式(多语句),均表现很突出。
  • 尽管进行了广泛探索,但是还没有发现比这更好的替代方案。因此,最好在与Java相似的两种语言(C#和Scala)中,选择好用的语法,而不是创造新语法。
不久将首先实现一个编译器。

C# 的语法:
   lambda = ArgList Arrow Body
   ArgList = Identifier
             | "(" Identifier [ "," Identifier ]* ")"
             | "(" Type Identifier [ "," Type Identifier ]* ")"
   Body = Expression
             | "{" [ Statement ";" ]+ "}"

使用lambda表达式这种语法的一个例子:
   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

12
7
评论 共 28 条 请登录后发表评论
8 楼 csywashing 2011-09-10 23:31
把匿名函数变成表达式。
7 楼 H_eaven 2011-09-10 21:05
表示看不懂, 
   out了吗?
6 楼 lzy5710303 2011-09-10 15:47
java开始学C#了
5 楼 hareamao 2011-09-10 09:34
zjumty 写道
早就该这功能了.

是啊,等了很久了。
4 楼 zcq100 2011-09-10 09:30
整脚本语言得了
3 楼 tinycool2008 2011-09-10 01:09
c#有lambda表达式之后 才有的linq

难道java也要出个linq了?

有意识了
2 楼 油炸大龙虾 2011-09-10 00:53
c#有Linq。比光有lambda好用很多,java学他干啥??不如早日关闭了,给groovy发展吧。
1 楼 zjumty 2011-09-09 18:57
早就该这功能了.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 深入理解Java Lambda表达式,匿名函数,闭包

    对于Lambda表达式一直是知其然不知其所以然,为了搞清楚什么是Lambda表达式,以及Lambda表达式的用法和作用,本文应运而生当做学习笔记分享出来,欢迎指正交流。

  • 比较C#和Java

    但由于C#也被描述为一个C++和Java的混合体,并添加了一些新特性,引入了一些变化,因此C#和Java自然也有很多不一样的地方。 这个条目描述了二者总体上的相似性,并列举了二者的不同点。   目录 1语言 1.1对象...

  • 7.8 W 字总结!Java 8—Java 10 特性详解

    点击关注公众号,回复“1024”获取2TB学习资源!‍‍Java现在发布的版本很快,每年两个,但是真正会被大规模使用的是三年一个的TLS版本。‍‍每3年发布一个TLS,长期维护版本。意味着...

  • java lambda 高阶函数_匿名方法,Lambda表达式,高阶函数

    匿名方法c#2.0引入匿名方法,不必创建单独的方法,因此减少了所需的编码系统开销。 常用于将委托和匿名方法关联,例如1. 使用委托和方法关联:this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_...

  • c#与java的区别

    但由于C#也被描述为一个C++和Java的混合体,并添加了一些新特性,引入了一些变化,因此C#和Java自然也有很多不一样的地方。 这个条目描述了二者总体上的相似性,并列举了二者的不同点。 语言[编辑] ...

  • JAVA java学习(8)——————java和C/C++的关系和区别

    Java、c# 便就是面向对象编程中的的代表性语言。 Java和C/C++的关系和区别 C 语言 19 世纪 70 年代初问世,1978 年美国电话电报公司(AT&T)贝尔实验室正式发布C语言。 C++ 在 C 基础上,1983 年贝尔实验室推出了 ...

  • java_note8

    面向对象总结,字符串正则表达式, String类,文本块text block,java11字符串新特性方法,string api,将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成

  • Java学习DAY2

    但 Java 的句法更清晰、规模更小、更易学。Sun 公司曾对多种程序设计语言进行分析研究,取其精华去其糟粕,最终推出了 Java。Java 从根本上解决了 C++ 的固有缺陷,形成了新一代面向对象的程序设计语言。 Java 和 C/...

  • 比较C Sharp和Java

    但由于C#也被描述为一个C++和Java的混合体,并添加了一些新特性,引入了一些变化,因此C#和Java自然也有很多不一样的地方。 这个条目描述了二者总体上的相似性,并例举了二者的不同点。 语言 对象处理 ...

  • 【编程实践】编程语言之 Smalltalk

    Smalltalk对其它众多的程序设计语言的产生起到了极大的推动作用,主要有:C++,C#,Objective-C,Actor,Java和Ruby等。90年代的许多软件开发思想得利于Smalltalk,例如设计模式、敏捷编程和代码重构等。

  • lambda 匿名内部类_从内部投影Lambda。 布莱恩·格茨专访

    lambda 匿名内部类 正如InfoQ报道的那样 ,Oracle在今年四月宣布将备受期待的Java 8的发布推迟到2014年第一季度。 OracleJava平台组首席架构师Mark Reinhold在他的博客中说: “超越M6的最重要的工作与Lambda...

  • 情感分析的入门简介,从词法、句法分析开始,到基础模型及深度学习模型的介绍

    目前,业界比较流行的句法分析工具有如下几种: Stanford Parser Stanford Parser是Stanford NLP团队开发的通用句法分析器,它有Python、Java、C++和MATLAB四个版本的API接口。 下载地址:...

  • 与Brian Goetz聊Java的数据类

    \\\作为Oracle的Java语言架构师,Brian Goetz一直致力于Java编程语言在生产力和性能上的日臻完美。最近,Goetz撰文绍了数据类(data classes)这一可能整合到Java语言中的实验性理念。他的研究工作很好地证明了,...

  • MongoDB学习(翻译2)

    C#驱动之LINQ教程 介绍 本教程涵盖了1.8发布版本对linq查询的支持。 开始本教程之前,你应该至少阅读下C#驱动教程关于C#驱动的介绍 快速开始 首先,添加下面命名空间到您的程序中: using MongoDB.Driver.Linq; ...

  • C#3.0与.NET

    第一章 .NET之道本章的目的在于为本书其余部分建立起一个概念性的框架,由.NET之前各种技术的局限性和复杂性开始,然后综述了.NET和C#是如何试图简化这种状况的。 以前看过不少.NET相关书籍,一般第一章都是简述...

  • 基于springboot教育资源共享平台源码数据库文档.zip

    基于springboot教育资源共享平台源码数据库文档.zip

  • 视频笔记linux开发篇

    linux开发篇,配套视频:https://www.bilibili.com/list/474327672?sid=4493702&spm_id_from=333.999.0.0&desc=1

  • readera-24-09-08plus2020.apk

    ReadEra 这个阅读应用能够打开下列任何格式的文档: EPUB, PDF, DOC, RTF, TXT, DJVU, FB2, MOBI, 和 CHM. 基本上来说,你可以用它阅读你的设备内存中的任何书籍或者文本文档。 这个应用与划分成章节的文档兼。,有一个书签功能,可以在你阅读的时候,自动保存你的进度。另外,它让你更改页面模式,从几种不同的主题中进行挑选(夜间,白天,棕黑色调,还有控制台)。

  • STM32单片机控制舵机旋转

    软件环境:KEIL4 硬件环境:STM32单片机+舵机 控制原理:通过控制输出信号的占空比调节舵机旋转的角度

Global site tag (gtag.js) - Google Analytics