当前位置: 首页 > 面试题库 >

我应该使用guard子句,并尝试避免else子句吗?

燕航
2023-03-14
问题内容

我已经读过(例如,从Martin
Fowler那里),我们应该在OOP的(短)方法中使用保护子句而不是单返回。我还读过(从我不记得的地方)应尽可能避免使用else子句。

但是我的同事(我在一个只有3个人的小团队中工作)迫使我不要在一个方法中使用多个返回值,而要尽可能使用else子句,即使else块中只有一个注释行。

这使我很难遵循它们的编码风格,因为例如,我无法在一个屏幕上查看方法的所有代码。当我编写代码时,我必须先编写guard子句,然后尝试将其转换为没有多次返回的形式。

我是错了还是该怎么办?


问题答案:

这是有争议的纯粹的美学问题。

从历史上讲,在C和类似语言中避免过早返回,因为有可能错过通常在函数返回时放在函数末尾的资源清理。

鉴于Java具有异常并最终尝试捕获,因此无需担心早期返回。

就我个人而言,我同意你的观点,因为我经常早退-这通常意味着更少的代码和更简单的代码流以及更少的if / else嵌套。



 类似资料:
  • 问题内容: 今天,我有一个同事建议我重构代码,以使用label语句控制通过我创建的2个嵌套的for循环的流。我以前从未使用过它们,因为我个人认为它们会降低程序的可读性。如果论点足够扎实,我愿意改变使用它们的想法。人们对标签陈述有何看法? 问题答案: 如果您可以跳过两个循环(或一个包含switch语句的循环),则许多算法的表达会更容易。不要为此感到难过。另一方面,它可能表明解决方案过于复杂。因此,退

  • 问题内容: 我有下面列出的3个表: 该SQL描述了我想要的: 问题是,在这种情况下,我有一个很大的NOT IN值,据我所知它将影响服务器性能(我不确定,因为我从未尝试对其进行基准测试或Google评估)。有什么建议吗? 问题答案: 试试这个 :

  • 问题内容: 我读到应该避免赞成和。我对弄乱Loop并没有信心,也没有完全理解Codex。 下面的代码是否使用?如果是,并且由于应该避免,那么您能建议一种不使用但仍然完成相同任务的方法吗? 此代码用于按随机或按价格对帖子进行排序。 。 使用此代码将链接A(随机)和链接B(价格)发布在我的菜单中。因此,网站的访问者只需单击链接即可对帖子进行排序。 问题答案: 我已经针对WPSE这个主题做了非常详细的解

  • 问题内容: 有时是有用的,例如,如果我为网站上的所有链接(例如选择器)定义了通用样式,但是当我要覆盖某些规则时,可以有以下选择: 使用更具体(更长)的选择器 采用 哪种方法更好,可能有一些指导原则? 问题答案: 使用非常,非常谨慎- 它会覆盖刚才的一切,甚至是内联样式和混乱在低于显而易见的方式与样式规则“梯级”,让CSS的名字。它很容易使用不当,而且容易成倍增加,尤其是在滥用时。您可以轻松地得出一

  • 9.14 golang后端 面试记录,50分钟 1、项目有没有使用过MySQL 很注重对SQL语句的使用 2、缓存的过期策略是什么 3、加密方式 4、分布式中worker的数量怎么确认,搜索关键词 spark, worker 数量 #邮储面试#