阅读更多

12顶
7踩

编程语言

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

2011-09-09 15:31 by 见习编辑 songshuang 评论(28) 有16072人浏览
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相关书籍,一般第一章都是简述...

  • 【计算机求职笔试】资源

    【计算机求职笔试】资源

  • (源码)基于Apache Spark Mllib的Bronze机器学习平台.zip

    # 基于Apache Spark Mllib的Bronze机器学习平台 ## 项目简介 Bronze是一个构建在Apache Spark Mllib之上的机器学习平台,旨在提供全面的数据接入、转换、训练、测试和输出功能。该平台支持多种机器学习算法模型,并提供丰富的插件来处理数据预处理、特征工程、模型训练和验证等任务。 ## 项目的主要特性和功能 ### 数据处理流程 1. 数据采集从各种数据源(如Fake、File、HDFS)接入数据。 2. 数据预处理对数据进行清洗、转换和格式化。 3. 特征工程生成和选择特征,包括特征提取、转换和选择。 4. 模型训练使用多种分类和回归模型进行训练。 5. 模型验证对训练好的模型进行验证和评估。 6. 模型持久化将训练好的模型保存到持久化存储中。 7. 模型结果输出输出模型的最终结果。 ### 支持的算法模型 #### 分类模型 逻辑回归支持大规模特征和无限训练样例,输出类别数小于1000万。

  • 电影评论网站系统设计与实现.zip

    Java项目基于Springboot框架的课程设计,包含LW+ppt

  • 《基于yolov8的纺织品瑕疵检测项目》(包含源码、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是均来自个人的课程设计、毕业设计或者具体项目,代码都测试ok,都是运行成功后才上传资源,答辩评审绝对信服的,拿来就能用。放心下载使用!源码、数据集、部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.dataset.txt文件,仅供学习参考, 切勿用于商业用途。 4、如有侵权请私信博主,感谢支持

Global site tag (gtag.js) - Google Analytics