java多返回值_如果让Java支持多返回值语法需要做哪些工作?

这都不需要JVM级别的改动,多值返回和有点类似的object destructing都属于语法层面的特性,可以简单的认为是syntactic sugar。在java中支持这些并不难,但java并不是什么特性流行就会去支持什么。

目前的Java Language Architect叫Brian Goetz,他在youtube上有一个视频,介绍未来java的发展方向,其中细致的讨论了他是如何决定是否将一个特性加入java中的。他谈及的一个很重要的理念是:

他并不会因为某个特性可以让java代码看起来简短而将其加入java,比如当年呼声很高的var关键字。代码的verbosity并不是他认为最为重要的考量,最重要的是代码的clarity。Java的代码需要能够清晰的表达程序员想表达的意义,这样才能够最有助于大规模的软件协作。

有意思的是实际上var关键字在Java 10中却被引入了。Brian Goetz专门花时间去澄清了背后的原因:虽然他不认为var导致的“简短”有多么重要的意义,但由于没有var关键字,很多时候他发现程序员会反而为了刻意的追求代码的简短,而把本应写成多行的语句写到同一行里面。这种语句虽然看似短了一些(很多时候短了不少),但却非常影响代码的可读性。而var关键字的引入可以鼓励程序员不要追求这种小聪明,该声明变量就声明变量,该写两行就不要写一行,那么程序整体的可读性就会提升,而这个是他认为Java在语言设计上应当追求的东西。

同理,不是java无法或者很难支持多值返回,只是目前这一特性的重要程度并不突出。实际上其他基于jvm的语言,比如kotlin,完全是支持多值返回和destructing的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值