当前位置:  开发笔记 > 编程语言 > 正文

返回此而不是无效是否有任何不利之处?

如何解决《返回此而不是无效是否有任何不利之处?》经验,为你挑选了2个好方法。

假设没有返回void,而是返回对类的引用,即使它没有任何特定的语义意义.在我看来,它会给你更多关于如何调用方法的选项,允许你以流畅的界面风格使用它,我不能真正想到任何缺点,因为你不需要做任何事情带有返回值(甚至存储它).

因此,假设您处于要更新对象然后返回其当前值的情况.而不是说

myObj.Update();
var val = myObj.GetCurrentValue();

你可以把两条线结合起来说

var val = myObj.Update().GetCurrentValue();

编辑: 我一想到就问下面,回想起来,我同意它可能是不必要的和复杂的,但是关于归还这个而不是无效的我的问题就在于此.

在一个相关的说明中,你们怎么看待这种语言包括一些新的语法糖:

var val = myObj.Update()<.GetCurrentValue();

此运算符的优先级较低,因此myObj.Update()将首先执行,然后在myObj上调用GetCurrentValue()而不是Update的void返回.

基本上我正在想象一个操作员会说"在左边的第一个有效对象上调用操作员右侧的方法".有什么想法吗?



1> Steve Morgan..:

我认为作为一般政策,它根本没有意义.以这种方式链接的方法适用于正确定义的接口,但只有在它具有语义意义时才适用.

你的例子是一个不合适的主要例子,因为它没有语义意义.

同样,使用设计合理的流畅界面也不需要你的语法糖.

流畅的接口或方法链接可以很好地工作,但需要仔细设计.



2> Mendelt..:

我知道在Java中他们实际上正在考虑为void方法制定这种标准行为.如果你这样做,你不需要额外的语法糖.

我能想到的唯一不利因素是表现.但这很容易衡量.我会在几分钟后回复你的结果:-)

编辑:

返回引用比返回void要慢一点..真是一个惊喜.所以这是唯一的缺点.在调用你的函数时还需要几个滴答.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有