![]() |
1
156
|
![]() |
2
104
|
![]() |
3
82
无论使用何种控制结构,糟糕的代码结构都是有害的。
所以,只需写两个版本(有和没有GOTO),看看哪一个更容易理解。那么选择就很容易了。 |
![]() |
4
27
|
![]() |
5
18
http://adamjonrichardson.com/2012/02/06/long-live-the-goto-statement/ 我实际上浏览了一个arrow代码的示例(深度嵌套的条件),并在一个版本中使用标准实践(保护子句、分组条件、提取函数)对其进行重构,在另一个版本中使用基于goto的版本,我实际上更喜欢基于goto的重构。 |
![]() |
6
11
|
![]() |
7
7
任何能够使代码在给定情况下更具可读性的语言特性都是一件好事。GOTO就是这样一种语言特性,即使这种情况很少。如果我们禁止任何语法,使贫穷的程序员有可能编写糟糕的、无法维护的代码,我们的工作就会困难得多。 |
![]() |
8
5
我们的日常语言(我指的是95%的基本代码中的一种)是Cobol,它广泛使用GOTOs。
另一方面,到目前为止,许多脚本在将近十年的时间里都没有它。此外,它与PHP的发展背道而驰,具有更多面向对象的特性。
|
![]() |
9
3
GOTO通常是邪恶的,因为它允许您构建非结构化代码。使用通常的循环,您可以构建良好的结构化代码,因为它是结构化的,所以易于遵循。 当非结构化代码从这里跳到那里时,您刚刚发现GOTO语句中的邪恶。几乎总是最好避免它。也许每100.000行就有一个地方,一个GOTO语句可以简化很多代码,因此代码不是邪恶的,但是如果你不确定,那么你应该避免GOTO。
编辑:好吧,我想在这里补充一下我自己的观点,还有其他一些指令允许您创建非结构化代码,并且在我认为它们应该是邪恶的时候,它们并不被认为是邪恶的。 例如,函数中间的一个返回是到函数末尾的一个GOTO,所以我避免使用它们,并且在每个函数的末尾只使用一个返回。 像Vb.Net这样的其他语言(可能也有其他语言)允许执行Exit For、Exit While、break等类似的操作,这些操作也会对代码进行非结构化处理,我认为应该避免。 |
![]() |
10
2
|
![]() |
11
1
我在编写在cli模式下工作的脚本时使用了GOTO。它救了我的命。 |
![]() |
Karlo · PHP Sqlite PDO最新版本 5 月前 |
![]() |
Malte · 检查远程服务器上是否存在文件(使用PHP)[关闭] 5 月前 |
![]() |
Bard.Mus · 迁移后的数据库字符集环境 5 月前 |