一种避免Switch语句的鲜为人知的方法

Posted 头名字W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一种避免Switch语句的鲜为人知的方法相关的知识,希望对你有一定的参考价值。

如何对代码执行这种友好操作。

像我一样,你可能已经学会了避免在源代码中使用大量if语句。他们很难读;代码很难遵循,而且通常很难看

看一看:

一堆丑陋的条件

当然,这只是从真实应用程序的上下文中推断出的示例。试想一下,我们在语句内执行函数调用。也许还有其他条件检查。

大多数编码员采用的解决方案是什么?

让我们分析提供的示例。将表达式与一堆值进行比较,然后在其中一个为时执行一些代码true。你想到了吗?只需使用一条switch语句。

一堆丑陋的条件

我故意留下了break,即使在这里由于return声明而不必要。

你能否发现此示例出了什么问题?

通过编写此代码,你并没有真正减少代码的冗长程度。说实话,甚至没有复杂性。你的代码仍然看起来很怪异且难以管理。可能会更容易理解你要执行的操作。

解决方案

我认为你应该对重构过程的工作方式感到好奇。以及为什么这个例子可以说明问题。大多数人倾向于以这种方式编写代码:

  • 考虑一下问题。
  • 实施解决方案或原型草案。
  • 编写代码。
  • 调整其中的某些部分以使其外观,性能或效果更好。

最后一部分通常被认为是重构。这不应该是一个千载难逢的问题。不要在代码重构完成后就离开文件。

此过程无法像这样工作,它更像是一个循环。你实现一些东西,尝试使其看起来不错,然后将其缩短,接着分离代码的关注点。

“代码具有灵活性。您可以通过对它执行这种连续的操作来保持灵活性”。

所以,试着深入研究重构。第一轮不要停下来。当你在处理一些预先存在的代码时,试着让它变得更好并且需要小而渐进的步骤。

最后,请根据我们的情况采取最后行动。为什么是使用函数而不是一个switch语句?

一种更好的执行多种条件的方法

请注意,如何定义ingredients对象以避免每次调用时都创建该对象getIngredients。或||用于管理返回的默认情况lemon

更轻松,更美观,更易于维护。这是重构做得很好的事情。只是不要乍一看就停下来。

请记住,您也可以为此使用map数据:

结论

本文的重点不仅是向你展示如何改进代码。重要的是能够为重构过程带来启发,以及为什么我们大多数人都弄错了。希望对你有所帮助!

以上是关于一种避免Switch语句的鲜为人知的方法的主要内容,如果未能解决你的问题,请参考以下文章

java中如何能避免过长的switch-case分支语句?

采用switch语句设计一个程序,对给定的学生成绩score评判其等级这个程序怎么编啊??

go语言switch语句用法

GCC 4.4:避免在 gcc 中对 switch/case 语句进行范围检查?

给出一种较好的替换switch case的方法 除了map映射还有么

switch语句