栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

return语句之前的局部变量,这有关系吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

return语句之前的局部变量,这有关系吗?

编辑: 如果像我一样,您使用的Kotlin比Java多,那么与IntelliJ在Kotlin中对此进行检查也有关系:

仅在以下返回中使用的变量,应内联

此检查报告仅在下一个 return 语句中使用的局部变量或其他变量的精确副本。在这两种情况下,最好都内联这样的变量。


实际上,有一个从PMD继承的SonarQube规则,称为“
不必要的本地
先行
返回”
,讨论了这一问题。它说:


避免不必要地创建局部变量。

此规则后来被
SSLR规则替换。
不应声明变量,然后应立即返回或抛出

变量
,它们保持相同的位置:

仅声明变量以立即返回或抛出该变量是一种 不好的做法
。一些开发人员认为,这种做法提高了代码的可读性,因为它使他们能够明确命名返回的内容。但是,此变量是内部实现细节,不会向方法的调用者公开。
方法名称应足以使调用者准确知道将返回什么

我完全同意。

IntelliJ(或至少是Android Studio)也针对这种情况发出警告:

变量仅在以下返回中使用,并且可以内联

此检查报告仅在下次返回中使用的局部变量或其他变量的精确副本。在这两种情况下,最好都内联这样的变量。


在这种情况下,我根本不担心性能。话虽如此,正如@Clashsoft在他的评论中提到的那样,JIT很可能会内联变量,并且无论哪种方式,您最终都会得到相同的结果。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/428007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号