BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Lambda开发群组意见收集:​“Strawman”语法临时方案

| 作者 Alex Blewitt 关注 4 他的粉丝 ,译者 贾国清 关注 0 他的粉丝 发布于 2011年6月15日. 估计阅读时间: 2 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

Lambda开发邮件列表中,Lambda语法引发了新一轮的讨论,与以往不同的是,这次以收集意见为主。​

​“Strawman”语法提供了一套临时性的方案,意在讨论该语法的可行性以及一些细节差异,这些细节包括Lambda表达式与类型推断如何在Java下工作等,同时该方案不会作为永久性的语法解决方案。目前,被推荐的4种语法形式如下所示:

  • Strawman​型: #(arglist)(expr) and #(arglist){statements}
  • BGGA​型: { args -> statements }
  • SotL​型: #{ args -> statements}
  • Redmond​型: (args) -> { statements }

该调查还分别附带了相应的代码片段:

Example of Strawman:
list.filter( #(Foo t)(t.length() > 3) )
       .map( #(Foo t)(t.barCount) )
       .max();

Example of BGGA:
   list.filter( { Foo t -> t.length() > 3 } )
       .map( { Foo t -> t.barCount } )
       .max();

Example of SotL:
   list.filter(#{ Foo t -> t.length() > 3 } )
       .map(#{ Foo t -> t.barCount } )
       .max();

Example of Redmond:
   list.filter((Foo t) -> { t.length() > 3 } )
       .map((Foo t) -> { t.barCount } )  ​       .max();

关于提案的更多细节可参看Lambda开发邮件列表中的原文,从中还可了解到如何反馈调查结果等信息。

查看英文原文:Lambda Syntax Survey

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意? by Jeffrey Zhao

像C#这样不是很好么?

list.filter(t => t.length() > 3)
.map(t => t.barCount);
.max()


类型可以推断出来,也无需大括号之类的,多干净。

Re: Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意? by L CY

咱也赞成C#这种比较简洁的语法

Re: Java是自暴自弃了还是怎么的,非要那么多语法噪音才满意? by 黄 海旭

或者像Scala那样:

list.filter(_.length > 3)
.map(_.barCount)
.max

甚至更简单的写法:

list.filter(length > 3)
.map(barCount)
.max

没有确认过,大概是这个意思。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT