不支持 goto 的语言,不是好语言

2021-01-28 14:35:14 +08:00
 jadeborner
没有哪一种方法比 goto 从多层循环中跳出更优雅了
1940 次点击
所在节点    程序员
12 条回复
hupo0
2021-01-28 15:42:39 +08:00
return
scukmh
2021-01-28 17:35:20 +08:00
资瓷
gdtdpt
2021-01-28 18:40:07 +08:00
更优雅的可能是不写多层循环……
bruce0
2021-01-28 19:01:00 +08:00
@gdtdpt 虽然是这个道理 但是有些时候必须要多层循环

------------------------------------------------------------------------------------

一般的语言都告诉开发者 尽量避免使用 goto 但是 go 语言很多地方推荐使用 goto 而且 break 也可以和 goto 一样 跳到指定位置
wander639
2021-01-28 19:05:47 +08:00
go 里面 for-select 基本上都是用 goto 跳出的
asAnotherJack
2021-01-28 19:53:21 +08:00
@wander639 #5 可以试下 label
mxalbert1996
2021-01-28 22:44:30 +08:00
减少潜在的屎山也不是坏事
Kasumi20
2021-01-29 00:19:54 +08:00
@gdtdpt 请问如何将冒泡排序、选择排序等二层循环降维
aguesuka
2021-01-29 16:44:20 +08:00
@Kasumi20 递归,把优化交给编译器
uselessVisitor
2021-01-29 17:19:23 +08:00
多层循环不应该优化吗?反而 goto ?
Kasumi20
2021-01-29 18:09:19 +08:00
@aguesuka 递归还行,我直呼内行
aguesuka
2021-01-29 22:01:22 +08:00
@Kasumi20 按照主楼的思路,当然是 haskell,agda 这种最优雅,它们都是没 for while 循环的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX