使用后藤有什么问题?

使用后藤有什么问题?

我正在浏览xkcd,看到了这个(如果几年前还读过一些关于它们的负面文本的话):
your slow connection sucks, get a faster one to see this image
它到底有什么问题?那么,为什么Goto在C+中是可能的呢?

我为什么要用它们?


慕尼黑的夜晚无繁华
浏览 330回答 3
3回答

跃然一笑

在1968年,迪克斯特拉(Edsger Dijkstra)给编辑写了一封著名的信ACM的来文 Goto被认为是有害的在其中,他提出了结构化编程的案例。同时循环和如果.那么.条件词。当使用goto替代这些控制结构时,结果往往是意大利面码..几乎每天使用的每一种编程语言都是一种结构化的编程语言,而Gotos的使用几乎已经被淘汰了。实际上,Java、Scala、Ruby和Python没有goto指挥。C、C+和Perl仍然有一个goto命令,在某些情况下(特别是在C中),后藤是有用的例如,退出多个循环的中断语句,或者将清理代码集中在函数中的单个位置,即使有多种方式终止该函数(例如,在函数执行过程中的多个点返回错误代码)。但是一般来说,它的使用应该被限制在特定的设计模式上,这些模式需要以一种控制和认可的方式来实现。(在C+中,最好使用Raii或护卫 (更多)而不是使用Goto进行清理。但后藤是Linux内核中常用的成语 (另一个来源),这是习语C代码的一个很好的例子。)XKCD漫画是一个问题的笑话,“当有特定的设计模式时,它的使用是否总是被认为是有害的?”
打开App,查看更多内容
随时随地看视频慕课网APP