首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么Go有一个"goto“语句?

为什么Go有一个"goto“语句?
EN

Stack Overflow用户
提问于 2012-06-16 23:58:41
回答 2查看 57K关注 0票数 134

我很惊讶地发现Go有一个'goto'语句。我一直被教导'goto‘语句是过去的东西,因为它遮蔽了程序的实际流程,函数或方法总是更好的控制流的方法。

我一定漏掉了什么。谷歌为什么要收录它呢?

EN

回答 2

Stack Overflow用户

发布于 2012-06-17 01:08:10

goto是一个好主意,当没有内置的控制功能做你想要的,当你可以用Goto表达你想要的东西时。(在某些语言中,当你没有goto时,这是一种遗憾。你最终滥用了一些控制功能,使用了布尔标志,或者使用了比goto更糟糕的其他解决方案。)

如果其他一些控制功能(以相当明显的方式使用)可以做你想做的事情,你应该优先使用它,而不是goto。如果不是,大胆一点,使用goto!

最后,值得注意的是,Go的goto有一些限制,旨在避免一些晦涩的bug。查看the spec.中的这些限制

票数 34
EN

Stack Overflow用户

发布于 2016-02-17 04:26:42

自60年代和70年代的Spaghetti code时代以来,Goto声明已经受到了很多质疑。那时候,软件开发方法论非常差,甚至没有。然而,Goto并不是天生邪恶的,但当然会被懒惰或不熟练的程序员误用和滥用。滥用Gotos的许多问题可以通过开发过程来解决,例如团队代码审查。

goto是与continuebreakreturn技术相同的跳转。有人可能会争辩说,这些声明以同样的方式是邪恶的,但它们不是。

Go团队之所以包含Gotos,可能是因为它是一个常见的流程控制原语。此外,他们希望得出结论,Go的范围排除了不可能滥用的傻瓜式安全语言。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11064981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档