If. Then. Throw. Else. WTF?

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

这是我从未能理解的代码。

我一直在寻找一个合适的隐喻来解释它的不正确之处。今天我终于找到了。

如果-那么-否则是过程式编程的一个分支机制。CPU要么向左走然后做某事,要么向右走然后做某事。想象一下自己开车,看到这个标志:

这看起来很合理,对吧?如果你不开卡车,你可以选择左侧车道。否则你应该选择右侧车道。两条车道一会儿会汇合。无论你选择哪条,最终都会走在同一条道路上。这就是这个代码块的作用:

现在,试着想象一下这个标志:

对我来说,它看起来非常奇怪,而且你永远不会在任何地方看到这个标志,因为死胡同意味着一个“终点”,一个句号,一个结束。在死胡同标志之后画一个车道有什么意义呢?没有意义。

这是一个正确的标志应该是这样的:

这是一个正确的代码块应该是这样的:

对于循环同样适用。这是错误的:

虽然这是正确的:

死胡同后面没有路了!如果你画出来,你的代码就会像这段非常有趣的片段一样,我几年前在审查某个非常严肃的公司一些很有钱的开发人员编写的源代码时发现的。

Don’t do this.

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-18 at 05:36

sixnines availability badge   GitHub stars