在Go的标签使用中,既然有goto了为什么还需要break ?

JimmyJin · · 1989 次点击
如果你使用过汇编编程的话,你就会觉得这个跳转太痛苦了,可维护性太差了。造成汇编程序没法复用的原因也在这里,要写的好,相当不容易呀。
#2
更多评论
qkb_75_go
琴为心声
1)break 是结构化编程语法; goto 是非结构化编程,不推荐使用的。 2)当然你也可以使用 goto 来实现 任何 break,continue,功能上完全等价。 但是,用goto 你要定义标签,你定义的这些标签,可读性可就成问题了。 当然如果你善于编排,设计得很精心,可读性,可维护性,可修改性都非常好,也没有问题。但是一般人,都做不到。 3)break, continue 是一种“优雅编程”,节省了编程的心智负担,而且代码标准,非常容易阅读和理解,也非常容易修改,不用绞尽脑汁考虑 label该起什么名字,goto到这个 label 是什么意思了。 4)结构化编程,应该是20年以前的产物了,他的思想理念是一直延续至今。 不过关于 非结构化/结构化 的对照,现在不再宣传,我认为挺可惜的。
#1