5.6 标签与 goto

Kesa...小于 1 分钟

5.6 标签与 goto

特别注意 使用标签和 goto 语句是不被鼓励的:它们会很快导致非常糟糕的程序设计,而且总有更加可读的替代方案来实现相同的需求。

forswitchselect 语句都可以配合标签 (label) 形式的标识符使用,即某一行第一个以冒号 (:) 结尾的单词(gofmt 会将后续代码自动移至下一行)。

func labelInFor() {
LABEL1:
	for i := 0; i <= 2; i++ {
		for j := 0; j <= 2; j++ {
			if j == 2 {
				continue LABEL1
			}
			fmt.Printf("i is: %d, and j is: %d\n", i, j)
		}
	}

}
i is: 0, and j is: 0
i is: 0, and j is: 1
i is: 1, and j is: 0
i is: 1, and j is: 1
i is: 2, and j is: 0
i is: 2, and j is: 1

使用 goto 模拟循环

func main() {
	i:=0
	HERE:
		print(i)
		i++
		if i==5 {
			return
		}
		goto HERE
}
上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2